Was ich tun möchte, ist ein Terminal-Menü zu erstellen, das verschiedene Arten von Argumenten nimmt und es in einem Array-Parameter platziert. Unten ist der Code: Hier sind einige Probleme, die ich habe und kann keine gute Lösung für finden.Erstellen eines Terminal-Menüs mit einer Abfrage
wenn ich nur 'list' schreibe, bekomme ich keinen gültigen Befehl, ich muss "list" (list und space) eingeben. Menüwahl neu sollte so sein: neu "Mein Name ist Hallo". param [0] = new und param [1] = Mein Name ist hallo, (sow ich kann eine Nachricht mit Leerzeichen erstellen).
Wie kann ich das erreichen?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
int menu()
{
printf(">");
char line[LINE_MAX];
int i = 0;
char *param[4];
while(fgets(line, LINE_MAX, stdin) != NULL) {
param[i++] = strtok(line, " \n");
if(param[0] != NULL) {
char *argument;
while((argument = strtok(NULL, "\n")) != NULL) {
param[i++] = argument;
}
}
if(strcmp(param[0], "new") == 0) {
//new(param[1]);
menu();
} else if(strcmp(param[0], "list") == 0) {
//list();
menu();
} else {
printf("Not a valid command.\n\n");
menu();
}
}
return 0;
}
Hmm jetzt wurde es weg geschnitten ...aber was ist, wenn es irgendwie mit der Ursache des Problems zusammenhängt? –
Hallo .. Sorry, meine Schuld ist jetzt. Ich habe diese Funktionen auskommentiert, um den Code zu kompilieren. – user265767
Entschuldigung wegen der Bearbeitung. Das obige Programm leidet unter vielen Problemen (einschließlich Programmlogik) und das Ändern dieser Kommentare ist notwendig. Aber keine Beziehung zu der Frage: die Frage nach Sachen, die vor den Zeilen mit den Kommentaren stehen. – pmg