解释scanf中没有空格和scanf中空白之间有什么区别?

main() { int d,a; printf("Enter the digit :"); scanf("%d",&d); printf("Enter another digit :"); scanf("%d",&a); } 

输出:input数字:10input另一个数字:10

 main() { int d; char a[10]; printf("Enter the digit :"); scanf("%d ",&d); printf("Enter another digit :"); scanf("%s ",a); } 

输出:

 Enter the digit : 10 waiting for stdin 

任何人都可以解释scanf("%d",&a)scanf("%d ",&a)之间的区别吗? 为什么在scanf语句中添加一个空格导致它等待stdin?

scanf格式字符串中的空白符与任何空格字符匹配,不仅空格,甚至多次,所以如果按Enter,则它是匹配字符串的一部分。 如果你按Ctl + D它应该工作。

scanf有一个空间意味着它会占用一个空间。 因此它等着你进入这个空间。