Visual Studio 2019 解决scanf函数报错问题

这篇具有很好参考价值的文章主要介绍了Visual Studio 2019 解决scanf函数报错问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

Visual Studio 2019 解决scanf函数报错问题
博主博客链接:https://blog.csdn.net/m0_74014525
关注博主,后期持续更新系列文章
*****感谢观看,希望对你有所帮助*****


系列文章

第一篇:Visual Studio 2019 详细安装教程(图文版)
第二篇:Visual Studio 2019 实用功能设置(背景颜色,代码颜色及行号设置)
第三篇:Visual Studio 2019 代码调试技巧
第四篇:Visual Studio 2019 解决scanf 警告问题



一、问题由来

在 Visual Studio 2019 编辑代码时,前期刚刚接触到VS编译器时存在的困惑,当用scanf()函数,进行输入时,在运行的时候编译器会出现警告报错。如下图情况
Visual Studio 2019 解决scanf函数报错问题,软件安装及使用教程,C语言,visual studio,c语言,c++,开发语言


二、为何会存在这个问题

在Visual Studio 2019中,scanf函数会被标记为不安全的函数,因为它没有检查输入缓冲区的大小。如果输入缓冲区不够大,scanf函数可能会导致缓冲区溢出,从而引发安全漏洞。


三、解决方法

方法1(scanf_s)不推荐

为了避免这个问题, VS编译器中可以使用scanf_s函数代替scanf。scanf_s函数具有相同的参数和行为,但添加了一个额外的参数,用于指定输入缓冲区的大小。例如,要读取一个整数,您可以这样使用scanf_s函数:

int num;
if (scanf_s("%d", &num) != 1) {
    // scanf_s失败,处理错误
}

注意:如果您还想使用scanf函数而不是scanf_s函数,请在项目的属性中启用“CrtSecureWarnings”选项,该选项将禁用scanf函数的警告。


方法2(#define _CRT_SECURE_NO_WARNINGS 1)推荐

在文件的最顶端输入以下代码

#define  _CRT_SECURE_NO_WARNINGS 1

注意一定得是文件最开头的地方 !!!

Visual Studio 2019 解决scanf函数报错问题,软件安装及使用教程,C语言,visual studio,c语言,c++,开发语言
因为在编程时常常会使用到scanf函数,为了解决每次编程时都需要在开头写这条会很繁琐


以下是解决方法
在新建.c文件时自带#define _CRT_SECURE_NO_WARNINGS 1

  1. 先下载这个软件 旁边是 Everything官网地址
    Visual Studio 2019 解决scanf函数报错问题,软件安装及使用教程,C语言,visual studio,c语言,c++,开发语言

  2. 运行Everything,在搜索框里查找这个文件newc++file.cpp
    Visual Studio 2019 解决scanf函数报错问题,软件安装及使用教程,C语言,visual studio,c语言,c++,开发语言

  3. 右击打开路径
    Visual Studio 2019 解决scanf函数报错问题,软件安装及使用教程,C语言,visual studio,c语言,c++,开发语言

  4. 复制该文件到桌面,用vs2019打开进行修改
    Visual Studio 2019 解决scanf函数报错问题,软件安装及使用教程,C语言,visual studio,c语言,c++,开发语言

  5. 将这段代码#define _CRT_SECURE_NO_WARNINGS 1复制到文件中
    Visual Studio 2019 解决scanf函数报错问题,软件安装及使用教程,C语言,visual studio,c语言,c++,开发语言

  6. 将这个文件保存到步骤4.的路径中,替换本来的文件
    Visual Studio 2019 解决scanf函数报错问题,软件安装及使用教程,C语言,visual studio,c语言,c++,开发语言

  7. 这样就在新建文件时,就有这行代码啦
    Visual Studio 2019 解决scanf函数报错问题,软件安装及使用教程,C语言,visual studio,c语言,c++,开发语言


总结

在学习C语言的初期,经常遇到scanf函数报错问题,建议使用方法2,方法1的scanf_s是在VS编译器中有,使用时如果在其他编译器运行时可能会出错,所以建议使用方法2,#define _CRT_SECURE_NO_WARNINGS 1


如这篇博客对大家有帮助的话,希望 三连 支持一下 !!! 如果有错误感谢大佬的斧正 如有 其他见解发到评论区,一起学习 一起进步。文章来源地址https://www.toymoban.com/news/detail-646425.html

到了这里,关于Visual Studio 2019 解决scanf函数报错问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你解决微软Visual Studio 2022的scanf()返回值被忽略问题(图文详解)

    大家好,我是荔园微风,作为一名在IT界整整25年的老兵,听闻广大初学者在学习Visual Studio 2022时,刚上手用其写C/C++程序时,总是会被一个问题困惑,这个问题叫: scanf()返回值被忽略。我们一起来看一下。 比如写了一个计算圆周的程序,结果还没运行, scanf()下方就出现绿

    2024年02月07日
    浏览(24)
  • Visual Studio编辑器中C4996 ‘scanf‘: This function or variable may be unsafe.问题解决方案

    目录 ​编辑 题目:简单的a+b 1.  题目描述 2.  输入格式 3.  输出格式 4.  样例输入 5.  样例输出 6.  解题思路 7.  代码示例 8.  报错解决 方案一 方案二 方案三 方案四 总结 输入两个整数a和b,计算a+b的和 本题很简单,但是注意此题是多组测试数据,即需要不停的接收系统

    2024年02月03日
    浏览(28)
  • 保姆级,手把手教你解决微软Visual Studio 2022的scanf()返回值被忽略问题(每个步骤都配图且标记)

        关于这个问题也是对于小白的我困惑的很是难受,也是收集了一些这方面的信息,基本上都是干货就,若是有不足和疏忽错误的地方还望见谅~ 这是因为由于编译器Visual Studio 的原因Microsoft公司觉得scanf 不安全 因此自定义的scanf_s,在 ANISC中只有scanf(),没有scanf() ,因此会

    2024年02月05日
    浏览(26)
  • 解决VS中scanf()函数报错问题的四种方案(详细)

     scanf函数在VS中报错的主要原因是 scanf被认为不安全而被编译器默认设置为禁用。 那么如何解决这个问题呢 法一: 仅将函数 scanf 替换为 scanf_s 即可,其他语法不变。但scanf_s函数并不是C语言函数库里的标准函数,而是VS编译器所提供的函数,所以并不推荐用这种方法来解决

    2024年02月02日
    浏览(21)
  • Visual Studio 的安装和调试及scanf的解决方法

    安装: 免费的开发人员软件和服务 - Visual Studio 在免费下载菜单下选择Community 等几秒就会开始下载文件,运行该文件。。。。。出现工作负载页面时,需要选择“使用C++”的桌面开发, 继续安装。初始启动时,要求登录,登录后即可获得授权; 启动visual studio, 左边会显示

    2024年02月07日
    浏览(24)
  • 解决Visual Studio 2019未能从“https://www.nuget.org/api/v2/package..“下载包问题

    今天从码云官网上下载了一个开源的.net项目,IDE使用的是VS2019,编译之前需要通过NuGet下载依赖的包,但是在下载依赖包的过程中出现了一系列问题。 这个问题主要是NuGet的源地址失效导致的,因此,要解决这个问题,主要是更改NuGet的源地址,更改方法如下: 1、打开Visua

    2024年02月16日
    浏览(20)
  • VS中出现的printf,scanf等函数不安全而报错的问题的全面解决方法

    在我们对VS的刚开始使用时,经常会遇见函数不安全而报错的问题,如  有如下三种解决办法(个人推荐第三种): 1.文件包含 #define _CRT_SECURE_NO_WARNINGS 这里又分为两种情况: (1)在 .c 文件中 有些项目比较简单,可能一个.c文件就能完成代码,这个时候把#define _CRT_SECU

    2024年02月07日
    浏览(25)
  • Visual Studio 2017工程在Visual Studio 2019打开碰到的问题

    Visual Studio 2017的工程可以正常使用,在Visual Studio 2019中打开碰到两个问题,Error code: 0x80004005 和 cannot open source file “xxx.h” ,解决了这两个问题。 参考Visual Studio 2017: Project is out of date with error (0x80004005) 假定是 HelloWorld 的工程,那么修改 HelloWorld.vcxproj 文件,将以下内容: P

    2024年02月05日
    浏览(32)
  • (解决方案) Visual Studio 2019 连接 SQL Server 2019 数据库时,数据库版本为904无法打开,此服务器支持852版及更低版本的问题

            我在做课设程序时连不上数据库,提示数据库版本太高。即使在数据库设置里把兼容性改到2016(852版)仍然无法连接,网上找的解决方法也不成功,自己摸索了一番找到了解决方法。 具体是直接连接数据库的服务器,而不是连接数据库本身,这样就能成功连接并使

    2024年02月11日
    浏览(34)
  • Visual Studio 2019 许可证过期解决办法

    打开Visual Studio 2019程序,会出现如下问题: 点击“检查更新的许可证”,显示 解决办法: 找到VS2019安装目录,找到 Common7/IDE/DDConfigCA.exe 再右键单击“以管理员身份运行”运行即可。 注意到点击DDConfigCA.exe,点击这个文件会立刻闪退,然后重启VS,就可以了!

    2024年02月11日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包