C、unix、とiのアプリケーションを書くことは、入力が有効になるまでユーザーの入力を要求する関数を持っています。 - HループはC言語で期待以上に実行されます
int inputX()
{
int result;
char input;
while(1)
{
printf("Input x (a, b, c, d, e, f, g, h) :");
scanf("%c", &input);
result = validChar(input);
if (result >= 0)
{
return result;
}
else
{
printf("Invlid input. Lets try again.\n");
}
}
}
validChar()チェックが入力された場合: は直進します。 私がaを入力した場合 - すべて正常です。 iを入力した場合1、出力は
Input x (a, b, c, d, e, f, g, h) :1
Invlid input. Lets try again.
Input x (a, b, c, d, e, f, g, h) :Invlid input. Lets try again.
Input x (a, b, c, d, e, f, g, h) :
私も試してみました睡眠()ですが、didntの仕事は... Cはトリッキーです:|
この質問に「C++」というタグが付いているのはなぜですか? –
入力バッファにデータが残っていると思われます。 2回目の繰り返しで 'input'の内容を調べましたか?それはあなたに多くを教えてあげます... –
[C loop prints string twice? (scanf( "%c")を使用して)](http://stackoverflow.com/questions/9421926/c-loop-prints-string-twice-using-scanfc) –