【发布时间】:2020-04-30 11:30:22
【问题描述】:
所以我有这个功能,基本上就是给scanf这个人写的名字,然后返回。
但是,当我检查错误时,它说我忽略了 scanf 的值,而我实际上是在返回它并在其他地方使用它。
char* nomes (int n, char* nome ) {
if (n == 1) printf(" Escolha o nome \n(max10 e sem espaços)\n");
printf(" Jogador %d:",n);
scanf("%10s",nome);
print_linha ();
return nome;
}
【问题讨论】:
-
返回值。也就是说,
scanf返回的值,而不是它写入的参数之一。int return_value = scanf(..); -
但我不明白我为什么忽略它。
-
你看到我的代码并和你的比较了吗?您是否有一个从
scanf返回的变量设置的变量?您似乎指的是nom,这不是返回值。 -
这就是编译器告诉你的。你应该使用它。你不是的事实是问题所在。
scanf的返回值告诉您它能够匹配多少个输入。通过忽略它,您可能会忽略失败并使用无效的nome值(如果失败,scanf不会将任何内容放入nome)。 -
@kiner_shah 这不是一个好建议。抑制有效警告不是一个好主意。
标签: c gcc-warning