Visual studio环境下scanf不安全解决办法

在vs(Visual studio)的环境,如果你直接使用scanf函数,可能会遇到下列情况导致程序无法正常运行:

我们可以分析一下错误列表的提示信息
错误    C4996    'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

大致意思是:

有两个方法可以解决问题:

1.scanf这个函数“不安全”,可以考虑使用scanf_s来替代。

2.可以用_CRT_SECURE_NO_WARNINGS来禁用警告。

1.使用vs提供的函数scanf_s替代scanf

我们先试试第一个解决办法:

        

可以看到,用scanf_s替代scanf后,程序正常运行,并且警报消失了。

但是要注意的是使用scanf_s的弊端:

使用scanf_s的弊端:

        scanf_s是vs提供的一个特殊的函数,不具有移植性(将代码移植到别的编译器上使用会报错),所以其实不建议使用,至于为什么vs会认为scanf函数不安全,感兴趣可以自行了解一下。

        

2.使用预处理指令#define _CRT_SECURE_NO_WARNINGS屏蔽警告

        预处理指令一般在程序编译之前就已经执行,习惯上我们也把他放在代码最上方

        

#define _CRT_SECURE_NO_WARNINGS



#include <stdio.h>



int main()
{
	int a;
	scanf("%d", &a);
	printf("%d\n", a);
	return 0;
}

同样,在做这样的处理后,警报消失了,程序也正常运行。

如何让预处理指令每次创建时都”自动“输入:

那如果每次写代码都要搞这么大一串岂不是很麻烦,所以还有一个办法可以让我们每次创建文件的时候,都”自动“将预处理指令输入:

        newc++file文件目录大致为:C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\VCProjectItems

        

在vs目录下找到newc++file.cpp( 如上),

然后复制一个到桌面上然后用记事本打开(不要关闭vs目录,一会还要用)

                

之后将这个复制文件拖回原文件夹,选择替换目标中的文件:

        

选择继续

之后使用vs创建文件后就可以看到最上面会有一行代码初始化好了,就不用再一遍一遍写了。

        

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值