c - 为什么这总是返回一个?

标签 c

#include <stdio.h>

int main() {  
    int i;  
    printf("%d",scanf("%d",&i));// > What does this explain

    return 0;
}

每次都返回1。怎么办?

最佳答案

scanf() 返回成功匹配和分配的输入项的数量,该数量可能少于提供的数量,如果早期匹配失败,甚至为零。

如果在第一次成功转换或匹配失败发生之前到达输入末尾,则返回值 EOF。如果发生读取错误,也会返回 EOF,在这种情况下,会设置流的错误指示符(请参阅ferror(3)),并设置 errno 来指示错误。

请阅读此人:https://linux.die.net/man/3/scanf

关于c - 为什么这总是返回一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45203737/

相关文章:

c - 是否可以从 C 中的数组调用函数?

c - 通过套接字发送哈希表的内容

c - 如何使用此方法将 C 宏扩展为结构和函数

c - 如何初始化只有空格且没有垃圾的字符串?

c - 网络应用程序在 Mac OS X 上运行,在 Linux 上连接失败

c - 如何在 C 中使用 setenv 避免此错误?

c - 为变量赋值会存储在错误的位置?

c - 如何使用GDB调试依赖文件?

c - 为什么 strcmp() 返回 '0' 虽然我没有提供空终止字符串?

c - malloc 操作清除其他分配的内存