工具:visual studio 2022
问题:
VS2022中C语言scanf报错:C4996
警告:C6031 返回值被忽略: "scanf"
微软不建议再使用C的传统库函数scanf,strcpy,sprintf等,所以直接使用这些库函数会提示C4996错误。
一、仅解决C4996的方案:
方法一:VS建议采用带_s的函数,如scanf_s、strcpy_s,但这些并不是标准C函数;
将scanf改为scanf_s,运行成功。
方法二:要想继续使用此函数,需要在源文件中添加以下指令就可以避免这个错误提示;
根据C4996的错误,将#define _CRT_SECURE_NO_WARNINGS宏定义放在.c文件的第一行,运行成功。
方法三:屏蔽C4996错误。
头文件中加上#pragma warning(disable:4996),运行成功。
二、解决C4996和C6031方案:
警告C6031 指示调用方未检查失败的函数返回值。根据调用的函数,此缺陷可能导致看似随机的程序错误行为。这包括错误情况或资源不足情况下的崩溃和数据损坏。
1.头文件中加上:
#pragma warning(disable:4996)
#pragma warning(disable:6031)
2.【项目】——>【属性】——>【C/C++】——>【高级】——>【禁用特定警告】;
3.输入【4996和6031】;
运行成功 ,警告消失。