2017-07-20 147 views
-9
#include <stdio.h> 

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

    return 0; 
} 

它每次都返回1。怎么样?为什么总是返回一个?

+0

什么是scanf返回?这就是打印。为了好玩,在格式字符串中添加其他内容,它会奇迹般地打印2. –

+0

c中scanf函数返回的值https://stackoverflow.com/questions/10469643/value-returned-by-scanf-function-in- c – inferno

+2

请阅读***返回值部分:https://linux.die.net/man/3/scanf –

回答

0

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

尝试:

#include <stdio.h> 

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

正如一位网民所提到的,但是,你应该看看了他们对这些功能的文档和实验,而不是立即不禁要问上的东西很容易回答的问题。看看这个网站:http://www.cplusplus.com/reference/cstdio/scanf/

1

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

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

请仔细阅读男人:https://linux.die.net/man/3/scanf

相关问题