关于Visual Studio编译scanf报错问题以及一劳永逸的解决方法!

2023-11-18

前言

在这里插入图片描述

相信很多使用vs编译器初学C语言的同学,刚开始都能碰到这个问题!
当你在代码使用了scanf,vs编译器就会报错,不管你是2013还是2022以及其他版本都会报错。(如上图所示)
注意:C语言当中本身scanf是不会错的。

怎么解决呢?

先来看一下报错的这段代码!

错误 C4996 ‘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.

翻译:
这个函数或者变量may be unsafe(可能不安全),考虑使用scanf_s进行替换(vs编译器告诉你scanf函数不安全,不建议你使用,请使用scanf_s替换它),如果你不想看到这个错误的描述警告,(但是就想用scanf),请使用它_CRT_SECURE_NO_WARNINGS!

  • See online help for details有关详细信息,请参阅联机帮助

那么怎么使用呢?

其实很简单,将此定义放在代码文件的第一行

#define _CRT_SECURE_NO_WARNINGS 1
  • 注意:一定是第一行
示例

在这里插入图片描述

可能这时有人就要问了,那是不是每次创建c代码文件,都要输入一边这个,岂不是很麻烦吗?

以下两种解决方法,让你对这个问题不再有疑惑,一劳永逸!
方法一
使用vs编译器提供的scanf_s函数,但是缺点很明显,因为是vs编译器本身提供了,所以在别的编译器可能不通用!
方法二
我们可以设置每次创建c代码文件的时候都自动生成这一行代码!

  • 首先复制这段话
#define _CRT_SECURE_NO_WARNINGS 1
  • 之后你要找到你当时这个编译器的安装位置
    打开Visual Studio Installer点击修改
    在这里插入图片描述
    打开之后点击安装位置
    在这里插入图片描述
    图中标的Visual Studio IDE下方的地址就是你安装位置
    根据自己的地址去找newc++file
    在此路径下右上角搜索newc++file文件
    在这里插入图片描述
    右键此文件,选择打开方式以记事本方式打开,将刚才复制的代码复制进去,保存退出就可以了!
    注意: 此外可能因为权限如果此时打不开或者无法保存等的情况下,需将此文件复制,然后粘贴到桌面或者你的其他文件夹,然后在用记事本打开,按以下操作弄好之后,最后将张贴的此文件剪切之原来此文件的地方,替换原来的这个文件就可以了
    将代码复制进去,保存退出即可
    在这里插入图片描述
    将复制修改之后的文件拖入文件夹中
    在这里插入图片描述
    选中替换目标中的文件
    在这里插入图片描述
    提供权限,点击继续即可
    在这里插入图片描述
    此时就可以达到我们想要的效果!
    如有疑问欢迎在评论区留言!

关于#define的用法与讲解,请看此链接!
链接:define讲解


以上代码均在vs2022环境下编译

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于Visual Studio编译scanf报错问题以及一劳永逸的解决方法! 的相关文章

  • QCombobox 向下箭头图像

    如何更改Qcombobox向下箭头图像 现在我正在使用这个 QSS 代码 但这不起作用 我无法删除向下箭头边框 QComboBox border 0px QComboBox down arrow border 0px background
  • 在实体框架拦截器中向 DbScanExpression 添加内部联接

    我正在尝试使用实体框架 CommandTree 拦截器通过 DbContext 向每个查询添加过滤器 为了简单起见 我有两个表 一个称为 User 有两列 UserId 和 EmailAddress 另一个称为 TenantUser 有两列
  • 我如何理解这个 C 类型声明?

    double bar int double double double double 在查看讲座幻灯片时 我发现了留给学生的练习 用简单的英语来说 什么是类型bar在这个 C 声明中 Please帮助我解决这个问题 我什至不知道从哪里开始
  • 为什么在创建矩阵类时使用向量不好?

    对于我的矩阵类 我做了 template
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • 类的成员复制

    在学习 复制成员 概念时 书中给出了如下说法 此外 如果非静态成员是引用 const 或没有复制赋值的用户定义类型 则无法生成默认赋值 我不太明白这个声明到底想传达什么 或者说这个说法指的是哪一种场景 谢谢 该语句与编译器自动为您编写的类
  • vs2008 c#:Facebook.rest.api如何使用它来获取好友列表?

    如何在此基础上取得进一步的进步 获取好友列表的下一步是什么 string APIKey ConfigurationManager AppSettings API Key string APISecret ConfigurationManag
  • 如何获取 QTableView 的标题列表?

    我有一个QTableView我的对话框中的对象 我需要访问该表的水平标题并将它们放入QStringList object 尽管进行了大量搜索 但我在 Qt 文档中找不到如何获取此标头列表 编辑 我发现的最接近的地方是this https w
  • 在 JSQMessagesViewController 中显示 LocationMediaItem

    我刚刚尝试实施LocationMediaItem in my Xamarin iOS应用程序使用JSQMessagesViewController 一切都很顺利 唯一的问题是UICollectionView应该显示位置的单元格永远停留在加载
  • 从 WebBrowser 控件 C# 获取滚动值

    我试图在 WebBrowser 控件中获取网页的 Y 滚动索引 但无法访问内置滚动条的值 有任何想法吗 对于标准模式下的 IE 使用文档类型 正如你所说 scrollTop是的财产元素 而不是 HtmlDocument htmlDoc th
  • Visual Studio Code:如何配置 includePath 以获得更好的 IntelliSense 结果

    我是使用 Visual Studio Code 的完全初学者 我不知道我在做什么 我已经四处搜索 也许还不够 但我找不到像我这样的人如何配置的简单解释c cpp properties json每当我单击带有绿色波浪线下划线的行旁边的黄色灯泡
  • 如何在服务器端按钮点击时关闭当前标签页?

    我尝试在确认后关闭当前选项卡 因此我将以下代码放在确认按钮的末尾 但选项卡没有关闭 string jScript ClientScript RegisterClientScriptBlock this GetType keyClientBl
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a
  • 如何通过 JsonConvert.DeserializeObject 在动态 JSON 中使用 null 条件运算符

    我正在使用 Newtonsoft 反序列化已知的 JSON 对象并从中检索一些值 如果存在 关键在于对象结构可能会不断变化 因此我使用动态来遍历结构并检索值 由于对象结构不断变化 我使用 null 条件运算符来遍历 JSON 代码看起来像这
  • 在 EnvDTE 中调试时捕获 VS 局部变量

    是否可以使用 EnvDTE 进行 vsix Visual Studio 扩展来捕获本地和调试窗口使用的调试数据 或者可以通过其他方法吗 我想创建一个自定义的本地窗口 我们可以修改它以根据需要显示一些较重的内容 而无需为高级用户牺牲原始的本地
  • cout 和字符串连接

    我刚刚复习了我的 C 我尝试这样做 include
  • 跨多个域的 ASP.NET 会话

    是否有合适的 NET 解决方案来在多个域上提供持久服务器会话 即 如果该网站的用户在 www site1 com 下登录 他们也将在 www site2 com 下登录 安全是我们正在开发的程序的一个问题 Thanks 它是否需要在会话中
  • 使用taskkill停止Windows服务

    我需要帮助来使用 C 终止 Windows 服务 现在要终止该服务 请使用以下选项 从命令 sc queryex ServiceName 发现后PID服务的 taskkill pid 1234 exemple f 为了便于阅读 但如果您明白
  • 如何在 DropDownList 中保留空格 - ASP.net MVC Razor 视图

    我在视图中通过以下方式绑定我的模型 问题是我的项目文本是格式化文本 单词之间有空格 如下所示 123 First 234 00 123 AnotherItem 234 00 123 Second 234 00 我想保留此项目文本中的空格 即
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959

随机推荐

  • Linux下SVN操作常用命令

    1 检出 svn co http 路径 目录或文件的全路径 本地目录全路径 username 用户名 password 密码 svn co svn 路径 目录或文件的全路径 本地目录全路径 username 用户名 password 密码
  • FLUKE DSX-5000 CH线缆测试仪怎么升级到新国标

    FLUKE DSX 5000 CH线缆测试仪怎么升级新标准GB T50312 2016 下面山东朗坤小编带给您FLUKE DSX 5000 CH线缆测试仪升级带有新标准软件的整体步骤 一起来学习吧 升级到5 1之后必须使用Linkware9
  • 全网最全总结,有源码,期望、有效值、方差、相关系数、自相关函、互相关函数,还分不清吗

    原文来自公众号 工程师看海 1 期望 期望也就是平均值 是一个数值 反应的是随机变量平均取值的情况 期望也叫做加权平均 在信号中代表直流分量 当随机变量X满足均匀分布时 对一段长度为N的离散序列X x n n 0 1 2 N 1 其期望E
  • 深度学习-1.1卷积

    卷积是一种数学运算 教科书上一般定义 首先有两个函数函数 f g 然后这两个函数的卷积 f g 如下 连续形式 离散形式 1 先将函数g t 延y轴翻转为g t 这是 卷 的由来 2 其中n是卷积的参数 将g t 平移n个长度 变为g n
  • Lua调用C的动态库步骤及接口分析

    Lua调用C的动态库 C语言可以完成一些lua不好实现的功能 当程序主体使用lua完成时 便需要掌握该技巧调用C来帮助我们达到目的 通过调用C的动态库简化操作流程 大致流程如下 使用C语言编写方法提供给lua调用 将C文件打包成动态库 lu
  • excel中怎样将数据合并到一个单元格用逗号隔开

    打开需要操作的Excel表格 将数据合并在一个单元格 并用逗号隔开 如图所示 excel中怎样将数据合并到一个单元格用逗号隔开 选中B1单元格 并输入分隔符号逗号 excel中怎样将数据合并到一个单元格用逗号隔开 单击B1单元格 向下拖动B
  • 使用 ChatGPT 辅助学习——为自己找一个老师

    我们每个人都有许多标签 例如高中生 成绩中等 文科 根据这些标签我和其他拥有相同标签的人分配了相同的教程 班级和老师 这可以带来效率上的提升 因为同一份教程 老师就可以服务几十上百人 而无须为每个人定制 但也正是这样造成了忽略个性的问题 而
  • STM32F103野火之中断

    顾名思义STM32中中断分为内核中断和外部中断 内核中断称为 异常 外部中断称为 中断 IPR寄存器STM只使用了高四位低四位没有使用所以共有2 4种情况 EXTI的功能框图分为两个部分 红色轨迹 模式为中断控制 有中断控制寄存器位决定 绿
  • Hyperledger Fabric 示例启动流程(二)

    test network启动流程 1 启动测试网络 此命令创建一个由两个对等节点和一个排序节点组成的Fabric网络 network sh up createOrgs 使用cryptogen工具或者Fabric CA来创建Org1 Org2
  • 嵌入式linux如何下载程序,Linux平台的下载程序-嵌入式系统-与非网

    有许多网络文件下载工具可以在Windows平台下很好地工作 如NetAnts 网际快车 TelePro等 还有像WebZip那样功能强大的离线浏览器 这些工具使我们可以在Windows环境下很轻松地下载网站上的文件 目录 网站的一部分 甚至
  • 大数据抗疫的“洪荒之力”:多地政府借力大数据技术,多家企业上马大数据产品...

    来源 数据猿 ID datayuancn 当心 几十万 3M口罩 全是假货 可能会携带病毒细菌 世上有两样东西不能直视 一是太阳 二是人心 生死之间 利益之前 最不可低估的就是人性的恶 目录精要 武汉火神山医院利用天翼云大数据检测疫情 潍坊
  • vscode运行cpp文件:检测到 #include 错误。请更新 includePath。已为此翻译单元(E:\C++ Code\test1\test1\test1.cpp)禁用波形曲线。

    刚为vscode配置好C 编译环境准备刷leetcode 结果写cpp文件时发现 include头文件总是报错 我就很迷惑了 include
  • Debian10常用命令

    文章目录 1 常用文件路径 2 用户和组管理 3 网络配置 4 主机名修改 5 vim编辑器 6 文件的操作 7 关机命令 1 常用文件路径 网卡配置文件 etc network interfaces dns配置文件 etc resolv
  • IP多播概念和实现

    目录 基本概念 硬件多播 IGMP和多播路由选择协议 基本概念 IP多播 曾译为组播 的目的是更好地支持一对多通信 即一个源点发送到多个终点 例如实时信息的交付 新闻 股市行情 软件更新 交互式会议及其他多媒体通信 下图中的多播组有90个成
  • SQL基础 读书笔记 第一章

    SQL基础教程 笔记 第一章 表格的新建 修改和删除 1 DDL DML DCL DDL 数据定义语言 CREATE DROP ALTER ALTER 修改数据库和表等对象的结构 比如增加 修改约束条件 比如 修改字段属性 INT 改为CH
  • 以OpenGL/ES视角介绍gfx-hal(Vulkan) Shader/Program接口使用

    文档列表见 Rust 移动端跨平台复杂图形渲染项目开发系列总结 目录 背景 The right way to tackle this in Vulkan is to use resource descriptors A descriptor
  • java关于通用分页参数的传递方式

    1 第一种 通过一个基础类 基础类中是所有类共有的属性 把pageSize和pageNum都放在基础类中 其他类全部继承基础类 如下 QuestionActivitiQueryReq类继承BasePage类 BasePage类就是专门用来放
  • LVM逻辑卷与条带卷管理

    逻辑卷管理器LVM Logical Volume Manager 在硬盘分区和文件系统之间添加了一个逻辑层 提供了一个抽象的卷组 允许多块硬盘进行卷组合并 不必关注物理硬盘设备的底层架构和布局 实现对硬盘资源的动态调整 条带化逻辑卷在物理卷
  • 组网学习之可扩展性设计(一)

    可扩展性设计策略 可靠性 1 设计冗余链路 为了保证可靠性 问题 会有环路 生成广播风暴 利用树协议解决广播风暴 增加网络带宽 聚合链路 采用分层的网络协议 rip 小型网络 与ospf 大规模 area用来划区域 0为骨干层 采用ap 无
  • 关于Visual Studio编译scanf报错问题以及一劳永逸的解决方法!

    前言 相信很多使用vs编译器初学C语言的同学 刚开始都能碰到这个问题 当你在代码使用了scanf vs编译器就会报错 不管你是2013还是2022以及其他版本都会报错 如上图所示 注意 C语言当中本身scanf是不会错的 怎么解决呢 先来看