itoa() - will noch nicht ganz

Gast #54091
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
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

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.