scanf()中的%c 不能正常輸入的問題
阿新 • • 發佈:2017-12-31
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 不能正常輸入的問題