解决VS 2019对scanf语句出错问题

前言

在用Visual Studio进行编写C语言程序时,发现了scanf语句显示错误返回值被忽略,错误提示C4996,可是scanf语句是C语言的标准输入语句,怎么会出错呢?
因为scanf()在读取数据时不检查边界,所以可能会造成内存访问越界,例如:分配了5字节的空间但是用户输入了10字节,就会导致scanf()读到10个字节
为此,scanf_s()函数是Microsoft公司VS开发工具提供的一个功能相同的安全标准输入函数,从vc++2005开始,VS系统提供了scanf_s()。在调用该函数时,必须提供一个数字以表明最多读取多少位字符。

方案一.将所有的scanf改为scanf_s

此方法最为简单方便,注意scanf_s后必须写上数字。

方案二.在项目中进行属性更改

第一步,创建项目
第二步,选择空项目进行创建
第三步,创建源文件
第四步,更改属性
右击源.cpp文件
打开属性
将SDL检查,改为否,然后确定
不推荐使用此方法,每次写程序前都需要更改一次属性

方案三,加宏

#define _CRT_SECURE_NO_WARNINGS
一定要写在第一行,也就是include之前

方案四,预处理

在第一行加上#pragma warning(disable:4996)