先來看這麼一段程式碼
int a;
char c
scanf("%d", &a);
scanf("%c", &c);
想要用多個scanf來進行字元的輸入,我們在輸入字元前不能輸入空白字元(空格回車),否則scanf在讀取字元時就會自動把輸入佇列中的空白字元讀取到%c中。
注意,只有一個 scanf()中的第一個 %c會遇到這樣的問題
那麼如何避免這種情況呢。
首先,把所有的輸入放到同一個scanf()函數中就能避免這種情況。
如果非要使用多個scanf的話,那麼有兩種選擇。
//這樣用
int a; char c;
scanf("%d", &a);
getcahr();
scanf("%c", &c);
這樣就可以在兩個輸入之間新增空白字元了
同樣的,C++中,使用 cin物件進行輸入時,也會遇到類似問題,解決方法也是類似的:用cin.get()吃掉