c語言關於scanf讀取回車(空格)的問題


 

#include<stdio.h>
int main()
{
int a1, a2;
char c1, c2;
scanf("%d%d", &a1, &a2);
scanf("%c%c", &c1, &c2);
printf("%d %d %c %c", a1, a2, c1, c2);

}

輸入10 20<CR> A B<CR> 的輸入

為什么輸出是10 20 空格 A

 

這是由於scanf讀取數據時回車會雖然不會讀取但會放在緩存區

下面執行的是%c將緩存區的回車讀入,然后再讀取A。 B讀取不輸出

需要直接輸入  10 20AB<C R>  這樣可以完全輸入輸出

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM