1.不安全原因
在VS编译器中,scanf等函数并不会对你输入值进行长度监控,因此在某些层面上就很容易造成内存的溢出。
2.解决方案
对于上述问题,编译器提供了两个解决方案,分别是
2.1 把scanf替换成scanf_s
虽然说此处编译器提供了此类方法,但此小编处并不推荐,首先是替换过于麻烦,其次是scanf_s仅仅只是在VS这类编译器中可以采用,在某种程度来讲,这大大降低了代码的可移植性。
2.2使用宏 _CRT_SECURE_NO_WARNINGS
这是编译器的提供的另一类解决方案,仅仅需要定义宏 _CRT_SECURE_NO_WARNINGS,但是此处任然比较麻烦,那有没有一种方法可以永久性的解决此类问题呢?答案是:有。
此处小编给大家推荐一款文件搜索软件,该搜索速度远远快于在电脑中查询文件的速度。
everything
https://www.voidtools.com/zh-cn/
此处直接下载安装精简版即可。
打开everything,我们需要在此找到VS中的newC++file.cpp文件。
把文件复制到桌面,只有在桌面我们才具有更改权力。
用记事本打开在此处加入#define_CRT_SECURE_NO_WARNINGS
随后将该复制回原路径即可。
接下来在我们新建的源文件中都包含了我们所定义的宏。