有关scanf的一句警告

LookIn 2011-11-22 06:28:32
问题:
mulsendc.c: In function ‘main’:
mulsendc.c:14:9: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
这句警告是什么意思?顺便问一句,这些内容从哪里可以查到?

代码如下:

#include<stdio.h>
#include "mpi.h"

int main(int argc,char** argv)
{
int rank,value,size;
MPI_Status status;
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
MPI_Comm_size(MPI_COMM_WORLD,&size);
do{
if(rank==0){
fprintf(stderr,"\nPlease give new value=");
scanf("%d",&value);
////////////////////////////////////////////////////
///////////////////////////////////////////////////
MPI_Finalize();
}
...全文
9076 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
LookIn 2011-11-23
  • 打赏
  • 举报
回复
是个办法~感觉还是检查一下scanf的返回值方便点儿~
[Quote=引用 4 楼 sky_heart_zhang 的回复:]

我的理解:
最好不用scanf,一是避免scanf的第二个参数溢出(按照字符串格式化输入的时候);二是避免输入的格式错误。

因此我一般是使用getchar读取若干个字符(自己限定读入的格式,然后读取指定字符时结束读入),然后按照自己理解(要求用户输入肯定知道输入的类型)的类型进行类型转换,同时判断转换是否成功。然后根据转换成功与否决定后面的程序是否继续。
[/Quote]
xuanxuan683 2011-11-22
  • 打赏
  • 举报
回复
路过,有收获,楼主们给力啊
狂且 2011-11-22
  • 打赏
  • 举报
回复
额~~~~scanf() 和 printf() 都是有返回值滴.
LookIn 2011-11-22
  • 打赏
  • 举报
回复
我原来不知道scanf还有返回值。。。[Quote=引用 3 楼 xxyxxb 的回复:]

scanf()有返回值,你的代码把返回值丢弃不用。scanf()的返回值最好考虑下,特别是在循环中,非常容易在用户输入非法字符的时候造成死循环。
[/Quote]
LookIn 2011-11-22
  • 打赏
  • 举报
回复
嗯,我是想知道为什么有这个警告~我编译的时候用的mpicc -O2 -o ...应该是用了-O2选项~[Quote=引用 2 楼 yq_118 的回复:]

不是说清楚了吗,你忽略了scanf的返回值。
当运行时输入的格式不对就可能出问题。
[/Quote]
LookIn 2011-11-22
  • 打赏
  • 举报
回复
怎么搜。。。[Quote=引用 1 楼 zhaghi 的回复:]

gcc源码里面可以搜索到这警告
[/Quote]
sky_heart_zhang 2011-11-22
  • 打赏
  • 举报
回复
当然如果用户输入的字符个数超过自己限定的字符个数,那么我一般是将输入流清空的。而您可以根据您的需要决定是否清空输入流。
sky_heart_zhang 2011-11-22
  • 打赏
  • 举报
回复
我的理解:
最好不用scanf,一是避免scanf的第二个参数溢出(按照字符串格式化输入的时候);二是避免输入的格式错误。

因此我一般是使用getchar读取若干个字符(自己限定读入的格式,然后读取指定字符时结束读入),然后按照自己理解(要求用户输入肯定知道输入的类型)的类型进行类型转换,同时判断转换是否成功。然后根据转换成功与否决定后面的程序是否继续。
小笨同学 2011-11-22
  • 打赏
  • 举报
回复
scanf()有返回值,你的代码把返回值丢弃不用。scanf()的返回值最好考虑下,特别是在循环中,非常容易在用户输入非法字符的时候造成死循环。
stein42 2011-11-22
  • 打赏
  • 举报
回复
不是说清楚了吗,你忽略了scanf的返回值。
当运行时输入的格式不对就可能出问题。
zhaghi 2011-11-22
  • 打赏
  • 举报
回复
gcc源码里面可以搜索到这警告

70,017

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧