我有下面的代碼段,其中檢查爲char類型輸入來自鍵盤的字符用C
do{
printf("Do you want to add an edge(n to stop adding)\n");
check = getchar();
}while(check!='n');
和
do{
printf("Do you want to add an edge(n to stop adding)\n");
scanf("%c",&check);
}while(check!='n');
它們都產生相同的輸出
例如對於r \ n我得到是否要添加邊緣兩次,也就是說tt \ n我得到同樣的問題三次,然後詢問輸入。
我的問題是如何避免它,爲什麼會發生?
您還應該檢查EOF,否則程序將永久旋轉。 – geekosaur 2012-04-10 20:45:32
@geekosaur正確,修正。謝謝! – 2012-04-10 20:47:22
雖然這確實解決了\ n問題。但是它不考慮多個字符,如** rrr \ n **在考慮時 – manugupt1 2012-04-10 20:48:41