c - 解释 scanf 中没有空格和 scanf 中有空格有什么区别?

标签 c unix

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 语句中添加一个空格会导致它等待 stdin?

最佳答案

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

关于c - 解释 scanf 中没有空格和 scanf 中有空格有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12704907/

相关文章:

c - 如何在消息中设置 IPv6 路由器警报选项

c++ - 如何将char转换成它的ascii二进制码

c - 按 T​​AB 时防止 GTK Entry 隐藏文本输入

unix - 使用 awk 或 sed 查找字符串的第一次和最后一次出现

c - Fseek 到行号(具有可变长度的行)

c - 传递 strcmp 的参数 2 使指针来自整数而不进行强制转换

C程序: __start

unix - 如何区分具有完整上下文的两个文件?

c - 如何检查用户是否具有执行权限?

macos - 去安装不使用 zsh