Ich habe Probleme mit fgets()
und strtok()
, um eine Eingabe zu erhalten und sie entsprechend aufzuteilen.Wie verwende ich fgets und strtok, um mehrere Eingaben zu erhalten?
Angenommen, ich habe ein Hauptmenü, das Eingang 1-9 nimmt, und jeder Eingang führt zu einer anderen Funktion. Ich habe das mit nur if-Anweisungen und einer break-Anweisung für jede Funktion getan. Nehmen wir an, es gibt einen anderen Befehl, der einen String, dann ein Leerzeichen und dann zwei Ints verwendet. Wie würde ich das in meinem Menü schreiben?
Das ist jederzeit im Menü, es kann nur einzelne Ints lesen (1-9) und lesen Sie auch sagen "start 5,9,forward"
oder "start ,4,2,backwards"
in diesem Menü. Schreibe ich eine Logik, die sagt, wenn "Start" eingegeben wird, gehen Sie weiter, aber ich weiß nicht, wie es zu machen, so dass es dann für die Eingabe nach dem Start lesen und lesen Sie die 2-Zoll-und die letzte Zeichenfolge.
Tut mir leid, wenn meine Frage etwas verwirrend ist, aber ich möchte nur ein Beispiel kennen, wenn ich mehrere Eingaben in einer Zeile bekomme und in der Lage bin, diese Eingabevariablen zu manipulieren.
Vielleicht möchten Sie 'char buf [256], * p; fgets (buf, sizeof buf, stdin); p = strtok (buf, ","); while (p) {setzt (p); p = strtok (NULL, ","); } '? –