Hallo,
ich arbeite mich gerade in den Microchip C18 ein, und komme leider mit
einer formatierten Ausgabe nicht weiter.
Der folgende Code steht zu Beginn eines Unterprogramms:
1 | char s[15];
|
2 | int i = 5;
|
3 | int number;
|
4 | number = sprintf(s, "Ergebnis %d", i);
|
5 | // "s" wird nun auf einem LCD ausgegeben (und das funktioniert mit anderen Strings)
|
Nun ja, leider gibt mir sprintf immer 0 zurück, egal was ich auch
versuche. Der String "s" ist ebenfalls leer, egal was vorher drin stand.
Laut der MC "General Software Library" ist sprintf folgendermaßen
deklariert:
1 | int sprintf (char *buf, const rom char *fmt, ...);
|
2 |
|
3 | // Remarks: The sprintf function formats output,
|
4 | // storing the characters to the destination data
|
5 | // memory buffer, buf. The format string, fmt, is
|
6 | // processed as described for the fprintf function.
|
7 |
|
8 | // Return Value: sprintf returns EOF if an error
|
9 | // occurs, otherwise the number of characters
|
10 | // output is returned.
|
Kann hier irgendjemand einen Fehler entdecken? Ich nehme an, dass ein
String, den ich fest in den Programmtext schreibe (wie hier der
Formatstring) intern wie ein "const rom char[]" behandelt werden, ist
das korrekt?
Ich möchte mir ungern eine eigene Funktion für die Ausgabe schreiben,
wenn es schon was "bewährtes" gibt.
Peter