假設char c是來自用戶的單個字符的輸入。在C中打印循環中的字符輸入
if (c != 'A' && c != 'B' && c != 'C' && c != 'D') {
int t = 1;
while (t = 1) {
printf("%c is an invalid input. Valid cases are A-D.\n", c);
scanf("%c", &input); /* Space for taking care of whitespace */
c = lowToUp(c); /* If c is lowercase, convert to uppercase */
if (c == 'A' || c == 'B' || c == 'C' || c == 'D') {
break;
}
}
}
我試圖顯示此錯誤消息並繼續循環,直到用戶輸入有效的char值。
循環本身很好,但輸出不是。如果我進入X,
X is an invalid input. Valid cases are A-D.
is an invalid input. Valid cases are A-D.
無形\ n c鍵的實際值後,一直沒有困擾我在我的計劃中,除了這個其他任何部分。
我該如何擺脫它?
您正在進入循環兩次。一次輸入'X',一次輸入'\ n'。 – 5gon12eder 2014-09-18 23:46:18
c因爲新輸入被放入「輸入」,因此c在循環中不會發生變化(除了上殼)。你確定這是你正在運行的代碼嗎? – 2014-09-18 23:59:20
是的,那是我爲結果運行的確切代碼。 – whdPdnjs 2014-09-19 00:09:54