1. 程式人生 > >scanf()中的%c 不能正常輸入的問題

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

urn 輸入流 pri blog 問題 sca 但是 char amp

#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”,它也屬於一個字符被寫入了緩沖區內所以被賦值給變量了,就不用你輸入了。

1.可以這樣解決

#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;
}

  2.或這樣

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

  

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