Hallo,
irgendwie komme ich bei der Benutzung von sscanf nicht klar.
Ich erhalte z.B einen String "setconfig 1 45 10" oder "setslavestate 1
32 ex" und möchte ihn aufteilen in string, zahl, zahl, string.
Folgendes Programm habe ich:
1 | char userInput[25];
|
2 | char commandInput[15];
|
3 | char configParameter[10];
|
4 | unsigned int parameterValue, parameter;
|
5 |
|
6 | fgets(userInput, 25, stdin);
|
7 |
|
8 | // Eingabe: setconfig 1 45 10
|
9 | sscanf(userInput, "%s %u", commandInput, ¶meter);
|
10 |
|
11 | printf("%s",userInput);
|
12 | // Ausgabe: (nichts)
|
13 |
|
14 | // kann den string nicht auf einmal auswerten dazwischen wird noch anderer code ausgeführt
|
15 |
|
16 | sscanf(userInput, "%*s %*u %u %s", ¶meterValue, configParameter);
|
Denn Eingabestring userInput würde ich gerne später noch weiter
benutzen.
Wenn ich jetzt z.B. "setconfig" eingebe steht auch nach dem auslesen mit
sscanf noch "setconfig" in dem string userInput.
Gebe ich allerdings "setconfig 1 45 10" ein dann ist der String
userInput nach dem auswerten mit sscanf leer. Was in dem String ist
überprüfe ich mit dem printf nach dem ersten sscanf.
Kann mir jemand kurz auf die Sprünge helfen was ich falsch mache.Erkenne
den Fehler gerade nicht.
Danke.