📚博客主页:爱敲代码的小杨.
✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》
❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️
🙏小杨水平有限,欢迎各位大佬指点,相互学习进步!
文章目录
- 前言
- 解决方法
- 方法一:
- 方法二:
- 方法三:
- 总结
前言
为什么同一份代码在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
,每个符号都用分号隔开的
然后应用就可以了。
这种方法,每次项目都要设置,比较麻烦。
总结
个人推荐使用方法二,一劳永逸。