gpt4 book ai didi

c - 忽略scanf的返回值

转载 作者:行者123 更新时间:2023-11-30 15:10:40 25 4
gpt4 key购买 nike

我遇到这个问题,gcc 使用 Werror 参数出现错误“忽略 scanf 的返回值”。现在,我检查了论坛,我确实做了一些事情,例如将其放入 if 语句中,这似乎工作正常,但问题是,如果我要在我的大学编译它,我不会收到错误。

#include <stdio.h>
#include <stdlib.h>

#define EXAMPLE1 5

int main (int argc, char* argv[]) {
int example;


scanf ("%d", &example);
if (example <= EXAMPLE1) {
printf ("Woohoo\n");
} else {
printf ("Oohoow\n");

}

return EXIT_SUCCESS;

}

因此,例如,在我的大学中使用 gcc -Wall -Werror -O -o namehere namehere.c 可以很好地编译此代码,但如果我在家里使用它,则会出现上述错误。我的大学使用的是 gcc 4.9.2。我在家在 gcc 4.8.4、4.8.5、4.9.3 上尝试过。

最佳答案

忽略 scanf() 的返回值并不好,因为这意味着您没有检查输入中可能存在的错误。尽管某些编译器或设置不会对此发出警告,但您不应忽略 scanf() 的返回值。

试试这个:

#include <stdio.h>
#include <stdlib.h>

#define EXAMPLE1 5

int main (int argc, char* argv[]) {

int example;

if (scanf ("%d", &example) != 1) {
printf ("Read error\n");
}
else if (example <= EXAMPLE1) {
printf ("Woohoo\n");
} else {
printf ("Oohoow\n");

}

return 0;

}

关于c - 忽略scanf的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36058455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com