基于VS2019在使用scanf函数时报错的解决办法


一、VS2019在使用scanf函数时会报错?

让我们来看一下下面这一段代码的运行情况

#include <stdio.h>

int main()
{
	int a = 0;
	int b = 0;
	scanf("%d%d", &a, &b);
	int sum = a + b;
	printf("%d", sum);
	return 0;
}

在这里插入图片描述
可能在此之前你并没有用过VS的编译器,所以在以前的经验中使用scanf从没报过错,但是在VS里,它报错了,它提示我们使用scanf是不安全的,建议我们使用scanf_s来代替scanf来使用,或者使用_CRT_SECURE_NO_WARNINGS来避免报错。
那么这两种方法哪一种方法更好呢?答案是后者,前者虽然在VS的编译器里能顺利编译,但是其他的编译器可不认识什么scanf_s,换句话说,就是可移植性变差了。但是我们也不想每次写程序都在程序前面加上一句_CRT_SECURE_NO_WARNINGS
来避免报错,那么有没有什么一劳永逸的办法呢,听我娓娓道来。

二、解决方法

通过文件查找查找newc++file.cpp这个文件(我使用的查找文件的工具是Everyshing,推荐,也可以使用你们自己的文件查找工具),一定要找对哦,你可以右击鼠标,点击查看路径,看看是不是Microsoft Visual Studio目录底下的文件。然后通过记事本或者其他方式打开,在打开的界面中输入
#define _CRT_SECURE_NO_WARNINGS
然后Ctrl+S保存,选择要替换即可

在这里附上Everything的下载链接,有需要的自取
链接:https://pan.baidu.com/s/14SItdd9o8XsV_Jj16ce-9Q
提取码:t4hd

注意千万不要一不小心把newc++file.cpp这个文件删除了哦
具体操作见下图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
你会发现出问题了,你没有权限(当然你有权限的话问题就解决了doge),所以我们换一种方式。
回到newc++file.cpp所在文件,我们将它复制一份到我们的桌面,然后通过记事本或者其他方式打开它,还是在笔记本中输入
#define _CRT_SECURE_NO_WARNINGS
然后保存我们的修改,然后把修改好的文件再拖回原本它所在的文件夹,在弹窗中选择替换目标文件,替换完成,结束收工,此时你可以在VS中新建一个工程文件,看看文件首是不是出现了#define _CRT_SECURE_NO_WARNINGS
具体操作如下图
在这里插入图片描述
在这里插入图片描述
如果你实在找不到newc++file.cpp文件,你也可以先找你的VS所在的文件夹(我的VS2019是安装在VS2019这个文件夹里的)再找Common7、IDE、VC,再打开如图所示文件就能看见newc++file.cpp文件啦,最后按照前文所述方法修改即可
在这里插入图片描述

三、为什么只需修改newc++file.cpp文件

VS是以newc++file.cpp文件为模板创建新文件的,也就是你每次创建新项目,VS都会copy一份newc++file.cpp文件,所以我们只要将来源更改就可以了

四、如果newc++file.cpp文件被删除了会怎么样?

那么你将永远失去箭头所示文件
在这里插入图片描述
最后,遇见问题不要慌,要相信总会有解决方法的。
那么,我们下次见。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shining-point

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值