编译错误 c6031 返回值被忽略scanf

唐老鸭要上天 2020-03-06 08:01:45
试了很多方法例如在第一行输入#define _CRT_SECURE_NO_WARNINGS 或者在属性 c/c++ 添加否 但是都不行
...全文
2361 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
院里有座山 2020-03-06
  • 打赏
  • 举报
回复
#define _CRT_SECURE_NO_WARNINGS
有很多开关只是能让代码编译,而依然会作为警告提示给开发者
寻开心 2020-03-06
  • 打赏
  • 举报
回复 1
int n = scanf("%lf%lf", &num1, &num2);
if ( 2 !== n) {
错误提示
return0;
}

要想让用户必须输入正确才继续下去的话,这个就复杂点儿
while ( 2 != scanf("%lf%lf", &num1, &num2) ) {
fflush(stdin); // 清理掉键盘缓冲区当中的内容
提示输入错误,重新输入
}
唐老鸭要上天 2020-03-06
  • 打赏
  • 举报
回复
所以大神我应该怎么修改呢
寻开心 2020-03-06
  • 打赏
  • 举报
回复
scanf函数是有返回值的, 用来表述正确的从键盘获得到输入数据的个数
你这个例子来说,要求输入两个double类型, 但是如果你输入 12.3 xyz 会如何
scanf的返回值是1, 通知你只有一个double被正确的获得了, 接下来怎么处理,你自己看着办
你不管的话,num1就是正确的值, num2就不是你想要的了
后面你还当他们是正确的值来处理的话, 后果自负吧

这是提供安全检测到警告,就和此处非本单位车辆禁止停放一样, 你可以不管,后果自负

70,008

社区成员

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

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