Visual Studio 2022 中解决使用scanf报错的方法(一劳永逸)

目录

【前言】

一、scanf报错示例

二、解决使用scanf报错的方法

解决方法1(不推荐)

解决方法2(不推荐)

解决方法3(强烈推荐)

第一步

第二步

第三步

三、效果演示(方法三)

【最后】


  • 🎈个人主页:库库的里昂
  •  🎐CSDN新晋作者
  •  🎉欢迎 👍点赞✍评论⭐收藏
  •   ✨其他专栏:代码小游戏、C语言初阶
  •   ✨收录专栏:编程小白
  •  🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗

【前言】

  • 宝子们好呀!在上一篇文章中教大家任何安装完成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:

  1. 此函数或变量可能不安全。请考虑改用scanf_s。
  2. 禁用不建议使用,请使用_CRT_SECURE_NO_WARNINGS。

所以说错误出现在scanf身上,下面我们来看解决办法

二、解决使用scanf报错的方法

现在网上常见的几种解决 scanf 函数不安全问题的方法有3种,下面我来一 一介绍

解决方法1(不推荐

根据报错提示将scanf函数替换成scanf_s即可\sum \prod

代码示例:

#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这个问题解决了

注意:

  1. define与_CRT_SECURE_NO_WARNINGS之间要有空格,不然依旧会出错
  2. 添加的这行代码一定要放在.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就可以正常使用了,有任何问题都可以在评论区留言或者直接私信我,我会一 一解答大家的问题,希望这篇文章对你有帮助。

  

  • 101
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 171
    评论
Visual Studio,当使用scanf函数时,可能会遇到问题。这是因为Visual Studio设置了自己的输入函数scanf_s,建议我们使用scanf_s来替代scanf。然而,我并不建议使用scanf_s,因为它只是Visual Studio特有的函数,在其他编译器可能不被支持。解决这个问题的方法是在源文件的开头使用define声明,具体方法是在源文件开头加上#define _CRT_SECURE_NO_WARNINGS 1,这样就可以定义scanf为正确的值,解决问题。 需要注意的是,scanf_s函数的使用方法scanf函数并不相同,需要单独学习其具体使用细节。另外,scanf_s函数也不通用,因为它是Visual Studio编译器提供的函数,其他平台可能不支持。这意味着使用scanf_s编写的代码在其他平台上可能无法正常运行。此外,类似于gets、strcpy、strcat等函数在Visual Studio编译器也会产生相同的问题。 当然,在使用Visual Studio时,我们不必每次都输入#define _CRT_SECURE_NO_WARNINGS 1来解决scanf的问题,因为这样太麻烦且容易出。我们可以在创建源文件后,在源文件直接包含上述代码,这样每次新建源文件时就自动包含了解决scanf的代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Visual Studio 解决scanf问题和快速在源文件创建主函数方法](https://blog.csdn.net/weixin_63716012/article/details/124228674)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [【C语言】一次性解决visual studioscanf函数不安全问题](https://blog.csdn.net/m0_62391199/article/details/122586539)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

库库的里昂

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

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

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

打赏作者

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

抵扣说明:

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

余额充值