itoa() - will noch nicht ganz

Gast #54091
Lesenswert?

Hi, ich möchte über UART integer zahlen als Zeichen ausgeben, die
funktion funktioniert zwar schon, allerdings muss ich immer genau
angeben wieviele Stellen die integer Zahl hat.
Ich bekomme nach "13" immer noch "Zeichenmist" übertragen, da ja
eigentlich nur test[0,1] benötigt wird. Ich will die Funktion aber
trotzdem variabel haben, was die Stellenanzahl der Integerzahl, die
umgewandelt werden soll, betrifft.

Maine itoa():

int i;
char test[20];
itoa(13,test,10);

for(i=0; i<=20;i++){
  transmit(test[i]);
  transmit('\012');
  _delay_loop_2(50000);
}

Vielleicht kann mir jemand schreiben, was nicht so ganz richtig dran
ist.

Danke
Gast #54092
Lesenswert?

Kauf Dir 'n gutes C-Buch.  Ich empfehle nach wie vor gern den Urvater
(oder besser: die Urväter): Kernighan/Ritchie (auch K&R genannt),
``The C programming language''.

Bitte in Englisch, zumindest die erste deutsche Übersetzung war
grauenhaft.

Strings in C werden mit '\0' terminiert, Du darfst also nur bis
dorthin ausgeben.

char *cp;

for (cp = test; *cp; cp++)
  transmit(*cp),
transmit('\n');

Ah ja, das Kapitel über Pointer & Arrays wirst Du dann wohl auch noch
studieren müssen, um das Beispiel zu verstehen. :-))

Mit itoa() hat das übrigens alles nicht das Geringste zu tun...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren