私がしなければならないことは、様々なタイプの引数をとり、それを配列パラメータに置くターミナルメニューを作ることです。 Underはコードです:ここでは、私が持っているいくつかの問題と良い解決策を見つけることはできません。チャレンジ付きターミナルメニューの作成
「list」と入力するだけで有効なコマンドではなく、「list」(リストとスペース)と入力する必要があります。 新しいメニュー選択は次のようにする必要があります:新しい "私の名前はこんにちは"。 param [0] = newとparam [1] =私の名前はこんにちは、(sowはスペースでメッセージを作ることができます)。
どうすればこの問題を解決できますか?これはあなたの問題を引き起こすが、これらの線が
/*new(param[1]);
/*list();
終了されることはありませんコメントを起動した場合
#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;
}
今、それは編集されました...何とか問題の原因に関連している場合はどうなるのですか? –
こんにちは..まあ、私のせいです、今です。これらの関数をコメントアウトして、コードをコンパイルすることができます。 – user265767
編集をお詫び申し上げます。上記のプログラムには多くの問題(プログラムロジックを含む)があり、そのコメントを変更する必要があります。しかし、質問との関係はありません。質問は、コメントのある行の前に何かをすることについて尋ねました。 – pmg