Gast
#409867
Hallo, ich kann bei meinem Programm sprintf(,,) nicht verwender. Gibt es andere Funktionen, die das gleiche ermögliche, sprich auch eine formatierte Ausgabe an einen Buffer ermöglichen? lg Programmer
|
Anzeige
|
sprintf()
Gast
#409867
Hallo, ich kann bei meinem Programm sprintf(,,) nicht verwender. Gibt es andere Funktionen, die das gleiche ermögliche, sprich auch eine formatierte Ausgabe an einen Buffer ermöglichen? lg Programmer
Gast
#409868
Programmcode? Compiler, Linker? Controller? Warum "sprintf()" nicht verwendbar? Bitte mehr Info sonst antwortet niemand...
Gast
#409869
selber basteln... Wenn die eingehenden Daten immer gleicher Gestalt (z.B. immer Integer) sind, kann man die Formatierung selber machen...
Gast
#409870
vsprintf, vnsprintf, vfprintf
Gast
#409871
Was für ein Compiler? Was genau möchtest Du ausgeben? Wenn es Zahlen sind, dann schau mal in die stdlib.h, die enthält eine ganze Reihe von Funktionen zur Umwandlung unterschiedlicher Zahlen in ASCII-Strings. Diese Funktionen (bei WINAVR-C (AVR-libc) z.B. itoa, utoa, dtostr, dtostre usw., bei anderen Compilern heißen die z.T. anders) sind im Einzelfall wesentlich platzsparender als die printf-Geschichten, decken dafür aber natürlich auch nur den jeweiligen Einzelfall ab.
Gast
#409872
Ich kann kein sprintf verwenden, da ich eine SPS in C programmiere und diese alle print() -sachen nicht unterstützt. Ich möchte das: sprintf(SendBuffer,"Sekunden: %d\x1b[0;0H\n", RTCGetTime.second); ohne sprintf() programmieren. Mein Beispiel lautet so: Kopiere einen String in ein Array (1), kopiere das ganze Array in den SendBuffer (2) und dann übergib den SendBuffer einer Struktur, die das weitere erledigt. (1) strcpy(WriteData, "hello"); (2) memcpy(SendBuffer, WriteData, 5 * sizeof (USINT)); (3) FrameWriteStruct.buffer = (UDINT) SendBuffer; Mein Problem ist jetzt, dass ich die Uhrzeit ausgeben möchte, welche ich von einer Struktur bekomme (RTCGetTime.second) und diese dann nicht gleich in ein Array schreiben kann, sondern vorher noch formatieren muss, da das Programm zyklisch abläuft und ich die Uhrzeit ja immer überschreiben möchte, da ich sonst auf dem Hyperterminal endlose Uhrzeiten ausgegeben werden. Ich hab mir schon gedacht das ganze in eine Struktur zu schreiben. Vielleicht hat da jemand eine Idee. Vielen Dank lg Programmer
Gast
#409873
Dann schau Dir mal das Bsp. von Rahul in diesem Thread an: http://www.mikrocontroller.net/forum/read-1-428783.html Dann zu jeder Ziffer 0x30 addieren, und schon hast Du die ASCII-Darstellung... Könntest Du versuchen, hier mit nur EINEM Pseudonym aufzutreten? Gestern nanntest Du Dich noch "Eder", heute "Programmer" ... Auch wäre es hilfreich, wenn Du nicht wegen jeder neu auftretenden Frage, die dasselbe Problem behandelt, einen neuen Thread aufmachen würdest. Derzeit dümpeln hier zwei namens VT100, einer namens Hyperterminal und einer namens Serielle Übertragung herum - und jetzt noch dieser hier. Und in allen geht es letztlich um das gleiche banale Problem. Genereller Literaturhinweis: Kernigham & Ritchie, Programmieren in C, 2. Auflage, Hanser Verlag Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|