C语言关于解决vs编译器scanf等函数输入不安全

目录

1.不安全原因

2.解决方案

 2.1 把scanf替换成scanf_s

2.2使用宏 _CRT_SECURE_NO_WARNINGS


1.不安全原因

      在VS编译器中,scanf等函数并不会对你输入值进行长度监控,因此在某些层面上就很容易造成内存的溢出。

2.解决方案

    对于上述问题,编译器提供了两个解决方案,分别是

C语言关于解决vs编译器scanf等函数输入不安全_第1张图片

 2.1 把scanf替换成scanf_s

虽然说此处编译器提供了此类方法,但此小编处并不推荐,首先是替换过于麻烦,其次是scanf_s仅仅只是在VS这类编译器中可以采用,在某种程度来讲,这大大降低了代码的可移植性。

2.2使用宏 _CRT_SECURE_NO_WARNINGS

这是编译器的提供的另一类解决方案,仅仅需要定义宏 _CRT_SECURE_NO_WARNINGS,但是此处任然比较麻烦,那有没有一种方法可以永久性的解决此类问题呢?答案是:有。

此处小编给大家推荐一款文件搜索软件,该搜索速度远远快于在电脑中查询文件的速度。everythinghttps://www.voidtools.com/zh-cn/

此处直接下载安装精简版即可。        

 打开everything,我们需要在此找到VS中的newC++file.cpp文件。

C语言关于解决vs编译器scanf等函数输入不安全_第2张图片

 把文件复制到桌面,只有在桌面我们才具有更改权力。

用记事本打开在此处加入#define_CRT_SECURE_NO_WARNINGS

C语言关于解决vs编译器scanf等函数输入不安全_第3张图片

随后将该复制回原路径即可。

接下来在我们新建的源文件中都包含了我们所定义的宏。

C语言关于解决vs编译器scanf等函数输入不安全_第4张图片

你可能感兴趣的:(C语言,c语言)