scanf()中的%c 不能正常輸入的問題

#include <stdio.h>
int main()
{
    char a;
    int b;
    scanf("%d",&b);
    scanf("%c",&a);
/******************************/
    printf("%d",b);
    printf("%c",a);
    return 0;
    /*
    應該輸入一個整型一個字符型變
    量,然後把它們輸出,但是現在
    只能輸入一個整型變量,很蛋疼
    的問題吧!!
    */
}

%c是在緩衝區內找到一個字符賦值給變量。輸入變量時一般用回車來結束也就是“\n”,它也屬於一個字符被寫入了緩衝區內所以被賦值給變量了,就不用你輸入了。

可以這樣解決

#include <stdio.h>
int main()
{
    char a;
    int b;
    scanf("%d",&b);
    getchar();//   getchar作用和%c一樣,這樣就能去除干擾了
    scanf("%c",&a);
/******************************/
    printf("%d",b);
    printf("%c",a);
    return 0;
}

還可以這樣

#include <stdio.h>
int main()
{
    char a;
    int b;
    scanf("%d\n",&b);
    //在輸入流中強制加一個換行符
    scanf("%c",&a);
/******************************/
    printf("%d",b);
    printf("%c",a);
    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章