したがって、私はcでスタックを実装しようとしています。私はすべての関数を書きましたが、私はfgetc関数に問題があります。だからここに私のコードの一部です:cの別の行に入力文字を入力する
while (1) {
printf("Choose an option: \
\n 1 Push \
\n 2 Pop \
\n 3 Top \
\n 4 Print \
\n 5 Exit\n");
option = fgetc(stdin);
opt = ctoi(option);
while (opt < 1 || opt > 5) {
printf("Wrong entry, let's try again: \n");
option = fgetc(stdin);
opt = ctoi(option);
}
switch (opt) {
case 1: push(&stack, fgetc(stdin)); break;
case 2: pop(&stack); break;
case 3: top(&stack); break;
case 4: print_stack(&stack); break;
case 5: return 0; break;
default: printf("impossible"); break;
}
}
ctoiはcharをintに変換するために書いた関数です。問題は、私はexmpleのために、入力した場合は、次のとおりです。
1
とプレス入力し、自動的に前方「は、入力のために私に尋ねてきます関数の最初の呼び出しが、(プッシュ関数呼び出しの内側)は、第2の1 \ n 'を引数とし、oは' \ n 'を無視して入力を求めます。これは可能ですか?ありがとう!
2回目の呼び出しは、別の関数の引数であるので、だから、私はできませんそれに比べると、無視... –
。 –
あなたはあなたのロジックを変更することができます... –