不仅仅是scanf函数会报错,其实vs报错的函数还有:
scanf
strcpy
strcat
sscanf
fopen
…
这些函数都是不安全的。
解决方案:
1.定义预定义符号:
即,在文件顶部加入一行:
#define _CRT_SECURE_NO_WARNINGS 1
2.使用scanf_s来代替scanf
3.一劳永逸的解决方法
(让每一次新建的源文件中都包含#define _CRT_SECURE_NO_WARNINGS 1)
在VS2017的安装路径下找到:newc++file.cpp文件,在文件中加上
#define _CRT_SECURE_NO_WARNINGS 1
【1、这里我的路径是:D:\software\Visual Studio 2017\Common7\IDE\VC\vcprojectitems
2、建议使用Notepad++,管理员模式打开,进行编辑保存】
4.设置项目属性的预处理
在VS2017中
打开工程的【解决方案资源管理器】——>点中项目名称,右击——>【属性】
在属性页中,选择【C/C++】——>【预处理器】——>【预处理器定义】中增加:
; _CRT_SECURE_NO_WARNINGS
(前有分号隔开)
然后,点击应用即可。
网上还有其他方法,以上只是自己尝试用过的方法。