初学者在使用VS2013在运行程序是出现错误errorC4996,是什么原因怎么解决。
实例
错误原因
VS2013认为直接使用scanf函数不安全,VS编译器所提供的包括 scanf_s、wscanf_s等以_s结尾版本的函数有安全增强功能。scanf等函数存在于版本较旧的CRT(C runtime library, part of the C standard library)中,具有安全性问题,比如在读取字符时,若不指定%s的宽度,可能会导致缓冲区溢出。
解决办法
1.按照给的提示可以考虑改用scanf_s。我们测试下。
毕竟scanf是C语言的正确函数,不是错误函数,那我们程序复制到别的平台来回改动很不方便也容易产生错误。我们怎么解决在VS2013中用scanf函数呢?
2.可以用添加头文件解决#pragma warning(disable:4996)
不过每个新建项目都需要添加屏蔽很麻烦。
3.我们还可以用错误说明里的第二种方式解决,用#define _CRT_SECURE_NO_WARNINGS。方法如下:
在VS安装包路径D:\vs 2013\vs2013AZ\VC\vcprojectitems,vcprojectitems中的newc++file.cpp打开添加 #define _CRT_SECURE_NO_WARNINGS并保存。
重新建项目就会自动添加#define _CRT_SECURE_NO_WARNINGS。(必须重新新建项目才会出现)
重新写入程序代码并运行。
运行成功,一劳永逸。