为什么总是返回一个?
问题描述:
#include <stdio.h>
int main() {
int i;
printf("%d",scanf("%d",&i));// > What does this explain
return 0;
}
它每次都返回1。怎么样?为什么总是返回一个?
答
您正在打印返回值scanf()
- 它返回格式化的项目数。
尝试:
#include <stdio.h>
int main() {
int i;
scanf("%d", &i);
printf("%d", i);
return 0;
}
正如一位网民所提到的,但是,你应该看看了他们对这些功能的文档和实验,而不是立即不禁要问上的东西很容易回答的问题。看看这个网站:http://www.cplusplus.com/reference/cstdio/scanf/
答
scanf()
返回成功匹配和分配的输入项的数量,可以少于规定的数量,或者在发生早期匹配失败的情况下甚至为零。
如果在第一次成功转换或发生匹配失败之前达到输入的结尾,则会返回值EOF。如果发生读取错误,EOF也会返回,在这种情况下,流的错误指示符(请参阅ferror(3))已设置,并且设置errno表示错误。
什么是scanf返回?这就是打印。为了好玩,在格式字符串中添加其他内容,它会奇迹般地打印2. –
c中scanf函数返回的值https://stackoverflow.com/questions/10469643/value-returned-by-scanf-function-in- c – inferno
请阅读***返回值部分:https://linux.die.net/man/3/scanf –