Visual Studio 2022中scanf报错解决方法

在Visual Studio 2022中,scanf函数会被VS编辑器报错警告。那么我们该如何和在Visual Studio 2022使用这个函数呢?

问题测试:

我们快速写一个测试代码:

#include <stdio.h>
int main()
{
	int num;
	printf("enter your favorite number:\n");
	scanf("%d", &num);
	printf("Your favorite number is %d", num);
	return 0;
}

我们编译运行一下,发现弹出了如下对话框,很明显,在这段测试代码中产生了某种错误。
在这里插入图片描述
那么,我们该如何解决这个错误呢?我们看一下编译器告诉了我们什么:
在这里插入图片描述
这里可能看的不是很清楚我复制一下这段话:

已启动生成…
1>------ 已启动生成: 项目: Project_0_0, 配置: Debug x64 ------
1>Project.c
1>E:\Development\Test\CProject\bit-c-language-training-camp\Project_0_0\Project_0_0\Project.c(6,2): error 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>已完成生成项目“Project_0_0.vcxproj”的操作 - 失败。
========== 生成: 0 成功,1 失败,0 最新,0 已跳过 ==========
========= 生成 开始于 10:22 PM,并花费了 00.228 秒 ==========

注意看这段话:
error 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.
大致翻译一下:scanf这个功能可能是不安全的,我们可以考虑使用scanf_s代替。如果要持续使用,请使用_CRT_SECURE_NO_WARNINGS。好了,那么到这里,我们基本上已经明白这个问题的解决方法了,那么我们开始解决问题。

方法一:使用scanf_s替代(不推荐)

根据Visual Studio 2022中断错误提示,我们以后如果想要调用scanf函数时,一律可以使用scanf_s代替,这样Visual Studio 2022就不会报警。
但是,scanf_s是Visual Studio 2022自定义的函数,如果我们想要在其他编译器中编译程序,可能还会出现错误警告的问题,只能说是治标不治本。

方法二:使用_CRT_SECURE_NO_WARNINGS 1

第二种方法就是我们在源文件的最开头加上下列描述

#define _CRT_SECURE_NO_WARNINGS 1

加上这段话后,我们可以看到程序可以正常编译使用
在这里插入图片描述
但是这里有很多朋友可能跟我一样比较懒,不想每次编写程序的时候都再写一遍这段话,那么有没有什么简单的方法呢?这里请看方法三

方法三:修改newc++file.cpp文件(推荐)

这里我们打开此(我的)电脑,在搜索框中搜索newc++file.cpp,我们打开其路径,可以看到如图所示:在这里插入图片描述
这里我们复制newc++file.cpp文件至桌面上,右键打开方式,我们选择用记事本(其他文本编辑器也可)打开。在打开的文件中输入

#define _CRT_SECURE_NO_WARNINGS 1

如图所示
在这里插入图片描述
保存后退出。
我们把桌面上这个文件复制,在原本的文件夹位置粘贴,替换原本的newc++file.cpp文件。
这样我们每次新建源文件的时候,就会自动在文件的开头添加#define _CRT_SECURE_NO_WARNINGS 1了。

方法四:添加#pragma warning(disable: 4996)命令

如标题所示,我们可以在主函数前面添加#pragma warning(disable: 4996)命令,这样就可以无视警告,继续使用scanf函数了。

关于文件搜索速度慢的解决方案

这里我们推荐一个好用的软件:Everything,我们可以点击这个超链接,进入其官网下载安装版使用。在安装这个软件的过程时,可以设置开机自启,这样就大大减缓了重新加载的时间。如果你正在使用utools,那么我也推荐utools和Everything,可以很大程度上提升工作效率。
下面是这两款 工具的下载链接,有需要的朋友可以下载一试:
Everything:https://www.voidtools.com/zh-cn/
utools:https://www.u.tools/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值