我得到這個代碼:Scanf正在被忽略,如何預防?
#include <stdio.h>
int main(void){
char ordet;
int again = 1;
while(again == 1){
printf("Write a name: \n");
while (ordet!='\n'){
scanf("%c",&ordet);
if('A'<= ordet && ordet <='W')
{
printf("%c",ordet+3);
}
else if('W'<=ordet){
printf("%c", ordet-22);
}
}
printf("\nDo you want to write a new name? 1/0");
scanf("%d", &again);
}
return 0;
}
它運行正常第一次,但只要你按1編寫一個新的名字你永遠不會把它寫的機會,它只是不斷問:「你想寫一個新名字?「並忽略「寫一個名字:」。我已經用fflush(stdin),!= EFO和%c的空間infront進行了測試,但沒有任何效果。我怎麼能解決這個問題,因爲我真的不知道,幾天前與C開始。
嘿,我忘了提,但我也嘗試過,並沒有工作:http://i.gyazo.com/2f45bed9a20cfa48454f994c0ad02e2e.png – user2989236 2014-10-03 19:11:45
檢查'scanf'的返回狀態,並採取適當的行動時不消耗任何輸入。 – Soren 2014-10-03 19:15:27
不要改變問題。 – Rustam 2014-10-03 19:19:30