VS 2015 C++预处理器 scanf() 使用出错问题

Visual Studio 2015 编译错误

【error C4996: 'scanf': This function or variable may be unsafe. 】

warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.的解决方案

在VS 2015 中编译 C 语言项目,如果使用了 scanf() 函数,编译时便会提示如下错误:

error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

在VS 2015 中编译 C 语言项目,如果使用了 fopen()函数,编译时便会提示如下警告:

warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.



解释:VS认为c标准函数不安全,进行了一些处理。微软官方有关于这类函数的解释,附上连接https://msdn.microsoft.com/en-us/library/wd3wzwts(VS.80).aspx
下面给出这个问题的解决方案(后面几个同scanf()一样,不再作介绍):

方法

1. 在预编译头文件stdafx.h里(注意:一定要在没有include任何头文件之前)定义下面的宏:

        #define _CRT_SECURE_NO_DEPRECATE//关闭安全检查VS 2015 C++预处理器 scanf() 使用出错问题_第1张图片

    2. 或声明 #param warning(disable:4996)

VS 2015 C++预处理器 scanf() 使用出错问题_第2张图片

    3. 更改预处理定义:

        项目->属性->配置属性->C/C++ -> 预处理器 -> 预处理器定义,增加:

             _CRT_SECURE_NO_DEPRECATE

VS 2015 C++预处理器 scanf() 使用出错问题_第3张图片

4.真正原因在与vs中的SDL检查。于是可以:右键单击工程文件-->属性(最后一个)-->  c/c++  --->SDL 检查 ---> 否。或者在创建工程时把安全开发周期生命(SDL)检查的选取取消。

VS 2015 C++预处理器 scanf() 使用出错问题_第4张图片VS 2015 C++预处理器 scanf() 使用出错问题_第5张图片VS 2015 C++预处理器 scanf() 使用出错问题_第6张图片





你可能感兴趣的:(Visual,Studio,VS2015)