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

输出:输入数字:10 输入另一个数字: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语句中添加空格会导致它等待标准输入?

4

2 回答 2

4

scanf 格式字符串中的空格匹配任何空格字符,不仅是空格,甚至多次匹配,因此如果您按下回车,它就是匹配字符串的一部分。如果你按 Ctl+D 它应该可以工作。

于 2012-10-03T08:55:28.060 回答
-1

有一个空间scanf意味着它会期待一个空间。因此,它等待您进入空间。

于 2012-10-03T08:59:44.370 回答