Skocz do zawartości

Konwersja z int na char


Mateusz

Pomocna odpowiedź

Witam.

Jak w C mogę przekonwertować wartość int na char ?

int a=0, b=0;
char c[16];

while(1)
	{
	if(PINC==0b11111110)
	{
		a++;
		_delay_ms(5);
	}

	if(a!=b)
	{
		c=itoa(a, c, 10);  //To nie działa i c=(char)a; też nie
		LCD_CLEAR();
		b=a;
		LCD_WriteText(c);\
		while(PINC==0b11111110);
	}

	_delay_ms(5);
	}

Funkcja LCD_Write() wygląda następująco:

void LCD_WriteText(char * text)
{
while(*text)
	 {
 LCD_WriteData(*text++);
 _delay_ms(5);
 }
}
Link do komentarza
Share on other sites

Ale co chcesz zrobić? Jeśli przekonwertować int na char to:

int a;

char b;

b = a;

I to działa, mozna ew.

b= (char)a;

Natomiast jeśli chcesz uzyskać znak w kodowaniu ASCII to:

b = a+48;

lub bezpieczniej:

b = (a%10)+48;

Link do komentarza
Share on other sites

Mateusz chcę przekonwertować int'a na tablicę charów. Możesz skorzystać z funkcji sprintf

Dla przykładu:

char Temp[8];
sprintf(Temp, "%i", Zmienna_int);
LCD_WriteText(Temp);
  • Pomogłeś! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

A ja z swojej strony polecam:

				
volatile char bufor [17];	
int adr=ADRESS;
itoa(adr,bufor,16);
rs_put_text(bufor);	

jest to wysłanie zmiennej int na RS, w systemie szesnastkowym.

I chyba to jest w bibliotece:

#include <stdlib.h>
  • Pomogłeś! 1
Link do komentarza
Share on other sites

A ja z swojej strony polecam:
				
volatile char bufor [17];	
int adr=ADRESS;
itoa(adr,bufor,16);
rs_put_text(bufor);	

jest to wysłanie zmiennej int na RS, w systemie szesnastkowym.

I chyba to jest w bibliotece:

#include <stdlib.h>

Dzięki, to rozwiązanie jest 3 razy lżejsze i działa równie dobrze. Mój gotowy kod może innym się przyda:

 #include <stdlib.h>

int i=0,;
char temp [16];
itoa(i,temp,10);
LCD_WriteText(temp);
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.