C - 错误:忽略scanf的返回值?

Cne*_*erb 6 c

我只有几天的C编程,所以我不太确定这段代码有什么问题:

#include <stdio.h>

int main(int argc, char * argv[]) {
    int sides;
    printf("Please enter length of three sides :\n");
    scanf("%d", &sides);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我收到的错误消息如下:

忽略scanf的返回值

我在这里做错了什么,我该怎么做才能解决它?

Ale*_*der 6

这是一个警告,阻止编译器执行它的任务(设置太严格).检查scanf()函数的返回值是否有错误,警告应该消失.

回报价值

成功时,该函数返回成功读取的项目数.如果发生匹配故障,此计数可以匹配预期的读数或更少,甚至为零.如果在成功读取任何数据之前输入失败,则返回EOF.


Bas*_*tch 5

您可能会编码

if (scanf("%d", &sides) >0) {
    printf("you want %d sides.\n", sides);
} 
else printf("You did not enter any number.\n");
Run Code Online (Sandbox Code Playgroud)

scanf函数功能(请跟随链接)有几个角色

  1. 它需要一些输入,并且可以修改您通过地址传递给它的变量
  2. 它返回成功输入项目的数量


Mak*_*oto 0

您不会捕获scanf变量中的返回值。它是读取了多少个字符的计数(作为整数),因此如果这对您很重要,那么最好捕获它。

  • 相信我,这对你很重要。但这是成功扫描的项目数,而不是字符数。 (4认同)