This question already has answers here:
What does the scanf function return?
(6个答案)
2年前关闭。
无论如何,结果为1。
我已经使用scanf很多次了,但从未遇到过。怎么了
(6个答案)
2年前关闭。
#include <stdio.h>
int main() {
int days = scanf("%d", &days);
printf("%d", days);
return 0;
}
无论如何,结果为1。
7
1
我已经使用scanf很多次了,但从未遇到过。怎么了
最佳答案
这是正确的,因为scanf()
返回成功匹配和转换的元素数。考虑到您的情况下的正确输入,每当您的输入通过转换时,就可以看到值1。
请注意,scanf()
本身不返回扫描值,而是将值存储在传递的参数中。
引用C11
,第§7.21.6.4章
[...] scanf
函数返回
分配的输入项目的数量,可以少于提供的数量,甚至为零
早期匹配失败。