目录
【前言】
- 宝子们好呀!在上一篇文章中教大家任何安装完成Visual Studio 2022,还没有安装的朋友们可以到这里来看一下呀:Visual Studio 2022下载安装教程
- 安装完成后,很多新手小白在使用Visual Studio 2022编译器的过程中使用到scanf后会出现报错的情况,也不知道如果改正,所以今天我就来给大家分享解决这个问题的办法。
一、scanf报错示例
我们在Visual Studio 2022里面使用scanf是不是出现过这样的错误,其实是因为Visual Studio 2022这个编译器并不是完全按照C语言的标准来的!
我们输入一个简单的程序
代码示例:
#include<stdio.h>
int main()
{
int a = 0;
scanf("^%d", &a);
printf("%d", a);
return 0;
}
结果报错:
图中显示:
'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身上,下面我们来看解决办法
二、解决使用scanf报错的方法
现在网上常见的几种解决 scanf 函数不安全问题的方法有3种,下面我来一 一介绍。
解决方法1(不推荐)
根据报错提示将scanf函数替换成scanf_s即可
代码示例:
#include<stdio.h>
int main()
{
int a = 0;
scanf_s("%d", &a);
printf("%d", a);
return 0;
}
代码结果:
我们可以看到scanf这个问题解决了,但是因为scanf_s这个函数是VS提供的,其它编译器没有。所以说,如果你在代码中使用了scanf_s函数,代码就不跨平台了(即没有了可移植性),所以并不推荐大家使用这种方法。
解决方法2(不推荐)
在使用scanf函数的.c文件的第一行加入
代码示例:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
printf("%d", a);
return 0;
}
代码结果:
我们可以看到scanf这个问题解决了
注意:
- define与_CRT_SECURE_NO_WARNINGS之间要有空格,不然依旧会出错。
- 添加的这行代码一定要放在.c文件的第一行,一定要放在.c文件的第一行,一定要放在.c文件的第一行(重要的事情说三遍)。
我们可以看到scanf这个问题解决了,但是使用这种方法,每个.c源文件都需要手动添加,比较麻烦,所以并不推荐大家使用这种方法。
解决方法3(强烈推荐)
第一步
在电脑中找到 “newc++file.cpp” 文件。
路径:C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\VCProjectItems
考虑到很多同学放的位置不一样,这里我推荐同学下载一个软件, “Everything”,这个软件可以帮助大家迅速找到你电脑中的任何文件,在许多时候都十分有用。
打开Everything,输入newc++file.cpp,再查看代码路径
第二步
把此文件复制粘贴到桌面上,然后打开它,在里面加上
“#define _CRT_SECURE_NO_WARNINGS 1” ,然后保存退出。
第三步
把桌面上修改过后的文件保存下来,到 “newc++file.cpp” 文件路径下粘贴上去,然后点击“替换目标中的文件”,就大功告成了。
注:把 “newc++file.cpp” 文件复制粘贴到桌面上在修改其中内容然后在替换原文件的原因是:如果我们直接修改 “newc++file.cpp” 文件中的内容,系统会向我们索要管理员权限,而上面的方法则不会。
三、效果演示(方法三)
我们任意新建一个.c文件,查看是否会有这么一段代码
OK,果然有这么一段代码,至此我们的问题就完全解决了!🎉🎉🎉
【最后】
到这里我们的Visual Studio 2022就可以正常使用了,有任何问题都可以在评论区留言或者直接私信我,我会一 一解答大家的问题,希望这篇文章对你有帮助。