C語言的scanf()函數在接收輸入單個字符時會把上一次輸入的回車符號當做這次輸入的字符,造成無法正確的輸入字符數據。這恐怕是初學C的童鞋門遇到的最頭疼的問題了。今天給大家提供四種解決方法供借鑑。
在scanf()中使用'\n'屏蔽回車符號。
scanf("%d\n",&n); //使用'\n'過濾回車
scanf("%c",&c);
在scanf()格式串最前面添加空格,屏蔽回車字符
scanf("%d",&n);
scanf(" %c",&c); //%c前面加空格,過濾回車
在接收字符前,使用getchar()來讀取一次回車符號
scanf("%d",&n);
getchar(); //專門用來讀取上次輸入的回車符號
scanf("%c",&c);
在接收字符前,使用fflush()清空輸入流中緩衝區中的內容
scanf("%d",&n)
fflush(stdin); //清空輸入流緩衝區的字符,注意必須引入#include <stdlib.h>頭文件
scanf("%c",&c);
好了,以後再也不用爲這個問題煩惱了.....