一、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文件被删除了会怎么样?
那么你将永远失去箭头所示文件
最后,遇见问题不要慌,要相信总会有解决方法的。
那么,我们下次见。