图片示例:
scanf函数不会对函数作一个空间检测
(没有作空间越界的判断)
可能会栈溢出,而后程序崩溃
总之scanf函数不安全
例:c++
解决方法
1.考虑使用VS提供的scanf_s函数代替scanf
可是只能在VS下使用,下降了代码的可移植性,跨平台性
不考虑使用安全
2.使用#define _CRT_SECURE_NO_WARNINGS 1
一劳永逸的方法
注意必定是#define(空格) _CRT_SECURE_NO_WARNINGS 1
例:#define _CRT_SECURE_NO_WARNINGS 1
(每次打开文件都会在最顶层出现#define _CRT_SECURE_NO_WARNINGS 1,并且这句话必定要出如今最顶层)
图像演示
1.打开此电脑
2.找到VS的安装路径中的VC
3.用notepad++打开newc++.file
4.在里面输入# define _CRT_SECURE_NO_WARNINGS 1
5.CTRL键加s键保存便可
方法二
缺点每次都要先操做
1.右击鼠标点击属性
2.点击预处理器,在这句WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)的后面加上 ; _CRT_SECURE_NO_WARNINGS(1必定没有)点击肯定便可
方法三
缺点每次都要先操做
1.点击新建项时选择win32
2.点击下一步,不要点肯定
3.取消红色圈出的两项
4.点击空项目
5.点完成便可成功
此方法只会报警告不会报错ide