为什么这总是归还一个?

时间:2017-07-20 01:44:34

标签: c

#include <stdio.h>

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

    return 0;
}

每次返回1。怎么样?

2 个答案:

答案 0 :(得分:1)

scanf()返回成功匹配和分配的输入项的数量,可以少于提供的数量,或者在早期匹配失败的情况下甚至为零。

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

请阅读该男子:https://linux.die.net/man/3/scanf

答案 1 :(得分:0)

您打印出scanf()的返回值 - 返回格式化的项目数。

尝试:

#include <stdio.h>

int main() {
  int i;
  scanf("%d", &i);
  printf("%d", i);
  return 0;
}

然而,正如另一位评论者提到的那样,你应该查看有关这些功能的文档并进行实验,而不是立即就如此容易回答的问题寻求帮助。请查看此网站:http://www.cplusplus.com/reference/cstdio/scanf/