2 回答

TA貢獻2080條經驗 獲得超4個贊
不是只取了a的值就結束了 而是第二個scanf取到了一個' '(空格)
要理解這個你需要一點相關的知識
實際上當你輸入完a后你按回車鍵確認輸入的時候產生了一個'\n'
前一個scanf取走a后在緩沖區內其實還有一個'\n'存在
于是第二個scanf就取走了 結果看取來就像是只去走了a的值一樣 要想你的程序正常 只要在printf("please putin your card number:");
scanf("%l",&a);
printf("please putin your cardnumber again:");
scanf("%l",&b);
中間加一個getchar();取走'\n'就可以了
即
printf("please putin your card number:");
scanf("%l",&a);
getchar();
printf("please putin your cardnumber again:");
scanf("%l",&b);為什么只取了a的值就結束

TA貢獻1847條經驗 獲得超7個贊
main()
{
int a,b;
printf("please putin your card number:\n");
scanf("%d",&a);
printf("please putin your cardnumber again:\n");
scanf("%d",&b);
printf("a=%d,b=%d\n",a,b);
}
你的那個%l 是什么意思啊
你是想讀取 長整型的數據嗎 %ld 是讀取長整型
- 2 回答
- 0 關注
- 298 瀏覽