vs2022提示函数不安全等问题

我们在使用VS编译器编写C/C++代码源程序的时候,发现在里面用scanf函数会编译出错,如下图所示:

vs2022提示函数不安全等问题_第1张图片

这个提示我们有两种方案可以解决,一是可以把scanf函数替换为 scanf_s,如下:

vs2022提示函数不安全等问题_第2张图片

此时编译就会通过,但是在其他编译器里没有这个函数,因此跨平台性较差。于是我们看第二种方法,提示在头文件前面加个

_CRT_SECURE_NO_WARNINGS

 如下图:

vs2022提示函数不安全等问题_第3张图片

此时我们去编译发现解决了,而且可以方便的移植到其它平台上。但是现在又有一个问题,这个每次都去添加这句话会非常浪费时间,有没有一种一劳永逸的方法。答案是有的。在安装路径下找到这个文件

vs2022提示函数不安全等问题_第4张图片

这个目录下的newc++file.cpp这个文件。打开它并写入:

#define _CRT_SECURE_NO_WARNINGS 1

 然后保存,但是有的同学在保存的时候又遇到下面这个问题:提示权限打不开

vs2022提示函数不安全等问题_第5张图片

 解决很简单,我们只需把这个文件复制到其他目录,写入上面那句话以后,再复制到这个目录替换掉它就可以了。因为在其他目录写入这句话是不会提示权限打开这个问题的。比如我把这个文件复制到D盘根目录下:

vs2022提示函数不安全等问题_第6张图片

 在这个目录下打开这个文件并写入就不会提示权限打不开这个问题。然后再复制到这个目录下替换即可:

vs2022提示函数不安全等问题_第7张图片

 此时就完成了,重新启动vs编译器,然后新建一个.cpp或者.c文件如下:

vs2022提示函数不安全等问题_第8张图片

此时就自动加上了这句话,非常方便。 

但是你以为结束了吗??我想并没有,我们再来看下面这个

vs2022提示函数不安全等问题_第9张图片

我们发现,在使用里的strupr函数的时候在编译时又会提示函数不安全 

 此时我们再加上一句话就可以了

#define _CRT_NONSTDC_NO_DEPRECATE 1//strupr等不安全函数

vs2022提示函数不安全等问题_第10张图片

 此时解决了该问题。按照上面的方法同样把这句话加到newfilec++.cpp这个文件里就可以了。

好啦,今天的问题就分享到这里了。

 

你可能感兴趣的:(编译器常见问题,c++,开发语言,c语言)