前言
为什么同一份代码在Dev-c++
编译器中能正常运行,而在VS
中则报错呢?
原因:scanf
此函数或变量可能不安全,要禁用弃用,所以上诉代码在VS
中会报错
解决方法
方法一:
将scanf
替换为scanf_s
(不推荐)
scanf_s
这个函数仅仅是VS
这个编译器提供的,如果把代码放到其他编译器可能会编译不过,这个时候会出现一些跨平台的问题。
方法二:
定义预定义符号:_CRT_SECURE_NO_WARNINGS
在代码第一行输出:
#define _CRT_SECURE_NO_WARNINGS
一劳永逸的方法:
可以让每一次新建的源文件中就包含这句代码:
方法:在VS
的安装路径下搜索:newc++file.cpp
这个文件
在文件中加上:
#define _CRT_SECURE_NO_WARNINGS
以后创建的的新的.c
或者.cpp
文件中都会自动有这句代码。
PS:如果觉得系统的搜索太慢的,可以下载
Everything
这个软件
方法三:
设置项目属性的预处理
打开工程的【解决方法资源管理器】->【属性】
在属性页中:
【属性配置】->【C/C++ ->预处理器】->【预处理定义】中增加:
_CRT_SECURE_NO_WARNINGS
,每个符号都用分号隔开的
然后应用就可以了。
这种方法,每次项目都要设置,比较麻烦。
总结
个人推荐使用方法二,一劳永逸。