Hallo! Ich habe mal eine Frage. Ich empfange mit dem yC vom Rechner einen String, der so aussieht 18:20:50. Der String kann aber auch so aussehen 18:5:8. Ich möchte jetzt den String zerlegen. Die 18 in eine Variable std, die 5 oder 20 in die Variable min und die 8 oder 50 in die Variable sek speichern. Ich habe gelesen das, dass mit strlen usw gehen soll. Der über RS232 wir zunächst in die Variable buffer gespeichert. Wie sieht der nächste Arbeitsschritt aus, wenn ich z.B die 5 oder 20 heraustrennen will?
>Ich habe gelesen das, dass mit strlen usw gehen soll. Na ja, in gewissem Sinne schon. In string.h gibt es viele schöne Funktionen, die dir helfen können. Such dir die raus, die du benötigst: http://www2.fh-fulda.de/~klingebiel/c-stdlib/string.htm Oliver
Bei dieser Sache "sscanf( string, "%d:%d:%d", &std, &min, &sek );" bekomme ich beim compilieren 3 Warnungen. Ich glaube das liegt daran, dass ich std, min und sek in integer benötige. Wie mache ich das? Im Anhang habe ich mein Programm bereitgestellt. Warnung beim compilieren: avr-gcc.exe -mmcu=atmega8535 -Wall -gdwarf-2 -O0 -MD -MP -MT uhr_komplett.o -MF dep/uhr_komplett.o.d -c ../uhr_komplett.c ../uhr_komplett.c: In function `main': ../uhr_komplett.c:197: warning: int format, different type arg (arg 3) ../uhr_komplett.c:197: warning: int format, different type arg (arg 4) ../uhr_komplett.c:197: warning: int format, different type arg (arg 5)
Es gibt derzeit in der avr-libc kein scanf-Format, mit dem man einen 8-bit-Wert zuweisen könnte. Du müsstest also für das scanf drei temporäre 16-bit-Variablen nehmen und deren Ergebnis dann an die 8-bit-Variablen zuweisen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.