所以。用C編寫應用程序,unix,我有函數,它要求用戶輸入,直到輸入有效。 讓直行:循環運行超過預期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()檢查,如果輸入的是 - 小時。 如果我輸入 - 一切都很好。 如果我輸入例如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) :
我甚至試圖睡眠(),但沒有工作.. C是棘手:|
爲什麼這個問題標記爲'C++'? – 2012-03-05 19:54:26
我懷疑有些數據留在輸入緩衝區中。你在第二次迭代中檢查了「輸入」的內容嗎?它會告訴你很多...... – 2012-03-05 19:55:56
[C循環可能重複兩次打印字符串? (使用scanf(「%c」))](http://stackoverflow.com/questions/9421926/c-loop-prints-string-twice-using-scanfc) – 2012-03-05 19:57:05