Ich arbeite an einem Projekt und ich kann nicht herausfinden, wie man einen String mit einem int lesen kann, der nicht immer da ist.C - scanf string mit optional int
Zum Beispiel: Ich habe 2 Variablen
int argument = 0;
char instruction[16];
Und am Eingang:
"string" 57
Ich will "string" in Unterricht und 57 in Argumente setzen. Das kann ich tun mit
scanf("%s %d", instruction, &argument);
Problem ist, dass die Eingabe ohne die Zahl sein kann, das heißt
"string"
Dann würde Ich mag „string“ in der Anweisung setzen und lassen Argument gleich 0 Aber das Programm erwartet eine Nummer nach "string" und wird nicht fortgesetzt, bis es es bekommt.
Wie kann ich Eingaben von stdin lesen, wenn ich 2 verschiedene Arten von Eingaben haben kann? Ich habe mehrere Lösungen ausprobiert, aber keine funktionierte.
Danke
Hallo, könnten Sie ein bisschen mehr erarbeiten, wie mit ‚sscanf‘ zu analysieren, um zu versuchen? Vielen Dank –
@ TomášHorecký die Man-Seite ist nächste Station. Bedenken Sie jedoch, dass die Funktionsfamilien "scanf" und "sscanf" alle einen Wert zurückgeben: die Anzahl der erfolgreich gescannten Objekte. Wenn nicht genügend Elemente vorhanden sind, wird "scanf" abgewürgt, aber "sscanf" nicht. –
@WeatherVane Danke, ich wusste absolut nicht, dass die Funktionen einen Wert zurückgegeben haben. Ich habe versucht, schnell etwas zusammen zu werfen und es scheint so weit zu arbeiten. –