程式大概是這樣:
scanf("%c", &input)
while (input == 'y') {
// ....
scanf("%c", input);
}
結果 while 裡面的 scanf() 沒有停。原因是輸入「y」並按下 enter 後,scanf 拿到的是「2n」,所以 input 會是 2,但 n 還在 input buffer 裡面,第二次 scanf 會以為使用者已經有輸入值 (空字串) 就繼續往下執行了。
要讓 scanf() 避開這個問題,只要在「%c」前面加上一個空白即可:
scanf(" %c", &input)
Ref: