1. 程式人生 > >scanf() 輸入單個字元遮蔽回車符的四種解決方法

scanf() 輸入單個字元遮蔽回車符的四種解決方法

C語言的scanf()函式在接收輸入單個字元時會把上一次輸入的回車符號當做這次輸入的字元,造成無法正確的輸入字元資料。這恐怕是初學C的童鞋門遇到的最頭疼的問題了。今天給大家提供四種解決方法供借鑑。

  1. 在scanf()中使用'\n'遮蔽回車符號。

    scanf("%d\n",&n); //使用'\n'過濾回車

    scanf("%c",&c);

  2. 在scanf()格式串最前面新增空格,遮蔽回車字元

    scanf("%d",&n);

    scanf(" %c",&c); //%c前面加空格,過濾回車

  3. 在接收字元前,使用getchar()來讀取一次回車符號

    scanf("%d",&n);

    getchar();  //專門用來讀取上次輸入的回車符號

    scanf("%c",&c);

  4. 在接收字元前,使用fflush()清空輸入流中緩衝區中的內容

    scanf("%d",&n)

    fflush(stdin);  //清空輸入流緩衝區的字元,注意必須引入#include <stdlib.h>標頭檔案

    scanf("%c",&c);

好了,以後再也不用為這個問題煩惱了.....