scanf和scanf_s

运行vs2013时,scanf("%f", &weight);语句报错

错误 1 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. d:\codedocuments\visual studio 2013\projects\cprimerpluc\3-1rhodium\3-1rhodium\rhodium.c 7 1 3-1rhodium


scanf等类似的函数已经不太安全,要想保证程序的安全性,建议以后采用_s结尾的安全版本,但是很多以前的程序可能还是使用不安全的版本,因此有几种去掉该错误的方法


(1)在VS中新建项目的时候去掉“安全开发生命周期(SDL)检查”即可将错误转变成警告,使得使用不安全版本也不影响编译和运行,如下图所示。

(2)在头文件包含的最前面,记住是最前面(在include的前面)加上:#define _CRT_SECURE_NO_WARNINGS这个宏定义即可,如下图所示。

(3)在编译的头文件最前面加上:#pragma warning( disable : 4996)即可,类似于上图,此处不再附图。


(4)通过以下步骤Project properties->Configuration Properties->C/C++->Preprocessor->Preprocessor Definitions进入到预处理的定义中,点击按钮 (...),输入:_CRT_SECURE_NO_WARNINGS,使用 "\n" 相隔即可。


但是我在用vs2013编写c程序的时候,过程是:新建--项目--空项目--源文件右击--添加--新建项--c++文件。并没有出现SDL检查这个界面。如何找到SDL并关闭?

对已经建好的项目,右击属性,找到SDL检查,更改为否,即可。




猜你喜欢

转载自blog.csdn.net/u011228094/article/details/74327568