发布网友 发布时间:2022-04-20 07:18
共5个回答
懂视网 时间:2022-11-18 18:32
1、使用scanf函数时,会报错“返回值被忽略”,是因为微软认为scanf不安全导致的。
2、将使用的scanf函数替换为scanfs,好像scanf_s只有微软的编译器支持。
3、在文件的最开始添加下面一行,忽略安全检测,不然使用scanf会报错。
热心网友 时间:2023-09-08 06:12
禁止显示状态,警告C6031,是代码错误造成的,解决方法如下:
1、首先格式控制字符串用于指定输入数据的格式,一般由格式字符串组成。
2、格式字符串以%开头,在%后是各种格式的格式符,用来说明输入数据的类型、形式、长度、小数位数。
3、地址列表中给出各变量的地址,用来输入变量值。
4、格式字符串以%开头,在%后是各种格式的格式符,用来说明输入数据的类型、形式、长度、小数位数。
5、最后程序中的&n,表示变量n的地址。
热心网友 时间:2023-09-08 06:12
不明白你要问啥。
实际情况下输入类型不匹配是一个特别严重的错误,所以建议你这么写
热心网友 时间:2023-09-08 06:13
原因:在ANSI C中没有scanf_s(),只有scanf(),但是scanf()在读取时不检查边界,所以可能会造成内存泄露。于是Microsoft公司在VS中提供了scanf_s(),如果想继续使用scanf这个不安全的函数以下方法可以解决
方法一:在文件顶部添加代码:#pragma warning(disable:4996) 即可
方法二:错误提示的原因在与vs中的SDL检查;关闭步骤右键单击工程文件-->属性--------> c/c++ ------>所有选项------------> SDL检查选项改为 否
热心网友 时间:2023-09-08 06:13
我来说说我的观点吧:
scanf这个函数,本身就有返回值的,如果没有变量去接收返回的值,就会有这个警告的,因为函数有return返回的值,如:
int a;
scanf("%d", &a);
光这样写的话,它就会提示返回值被忽略了,但如果这样写:
int a, b;
b = scanf("%d", &a);
它就不会提示了,或者直接将 #pragma warning(disable:6031) 放到当前文件的顶部就行了,就像#include那样,括号里的数字填警告的数字就行了,以后遇到其他只在vs遇到的警告,直接照搬就行了(但那种直接提示“错误”error 的就别这样,只适用这种警告warning)
(#pragma是预处理命令的一种)
热心网友 时间:2023-09-08 06:14
把scanf换为scanf_s