This question already has answers here:
What does the scanf function return?
                                
                                    (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函数返回
  分配的输入项目的数量,可以少于提供的数量,甚至为零
  早期匹配失败。

08-16 23:12
查看更多