首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C4996 “scanf“ 问题——初学者使用VS的拦路虎

C4996 “scanf“ 问题——初学者使用VS的拦路虎

作者头像
北 海
发布于 2023-07-01 02:39:53
发布于 2023-07-01 02:39:53
6270
举报


🎉前言

  微软的VS系列编译器号称地表最强集成开发环境IDE),现在已经更新到了2022版,丰富的功能和高级的界面,对于学校里用的VC++ 6.0简直是降维打击,很多追求优质编码环境的同学可能都会去网上找到VS的资源,然后安装使用,当一切环境准备就绪时,发现涉及到使用 scanf 的代码无法编译,再三检查后发现代码没有任何问题,一时间甚至会怀疑自己是不是下错了编译器。其实没有,这是一个很常见的报错,也是所有想用VS的同学必过的一道坎。下面让我来教大家如何跨过这道坎:

某度 C4996 搜索关键词


♥️正文

让我们直接先进入 使用报错的场景

 微软为了提高编程时的 “安全性”scanf 有缺陷)以及增加用户对自己产品的依赖性scanf_s 只能在VS上使用),于是便设计了一个跟 scanf 功能相似的函数 scanf_s ,想用更全面的函数弥补 scanf 的缺陷,虽说微软本意是好的,但是像这种强制引导使用 scanf_s 的行为对新手是很不友好的,并且我们初学阶段很难接触到那些使用缺陷。 试想一下,张三听了自己的 C语言 老师讲了几堂课,在 VC++ 6.0 这种老平台已经熟练的使用 scanf ,想着换更高级的 Visual Studio 来用用,结果发现自己熟悉的 scanf 一使用就报错,简直就是怀疑人生。 既然微软提供了 scanf_s 这个新函数,那就让我们先试用一下。


♠️scanf_s 

不推荐在项目中使用 scanf_s 这会导致程序的可移植性变差,比如 scanf_sLinux 平台下使用就会提示语法错误 下面开始介绍最好用的屏蔽方法(不挑版本):


♦️解决方法

解决方法就是按照 Visual Studio 给出的提示,加上 _CRT_SECURE_NO_WARNINGS 这句话即可屏蔽 C4996 问题。 因为是在程序中,因此需要这样写 : #define _CRT_SECURE_NO_WARNINGS 1 这句话一般位于源文件顶部:

这样能解决了本次 C4996 的问题,但不能彻底解决这个问题,因为我们 重新创建源文件后需要再次重新添加这段屏蔽代码,非常麻烦,有没有一劳永逸的方法呢?当然有!


 1.搜索文件夹

 通过 Visual Studio 的图标找到它​​​​的安装路径,找不到也没关系,我们可以通过在桌面图标上单击鼠标右键 -> 选择打开文件位置 -> 进入Visual Studio 所在的文件夹中 -> 搜索 *newc -> 等待结果出来。

在此文件夹中搜索 *newc 文件后,结果如下图所示,成功后可进入下一步

注意:不同环境搜索结果略有差异,但只要能搜出 *newc 关键字相关文件,就可以进入下一步了

如果没有成功打开目标文件夹,可以继续往下看,成功打开文件夹的可以跳到下一步

可能有人照做后,打开的文件夹类似这个样子: 

 这是因为此时打开的是 快捷方式 所在的文件夹,如果需要继续访问 Visual Studio  所在文件夹,需要对它的快捷方式进行操作

进行如上操作,就能顺利的看到  Visual Studio 真正的文件夹了


2.复制文件路径 

文件路径待会要用,最好是能记下目标文件长啥样,方便后面一眼认出来。 一般目标文件为 newc++file.cpp 或者 newc++file

如何复制文件路径?

跟着动图操作,就可以成功复制当前文件夹所在路径了 


 3.打开记事本(管理员身份) 

因为 Visual Studio 默认不让用户随意修改文件内容,所以我们需要通过 管理员 身份打开记事本,以管理员身份访问目标文件,才可以做到修改文件内容。


 4.找到目标文件

目的文件的寻找需要用到刚刚的地址,将地址粘贴到搜索框内,很快就能找到目标文件,如果看不到,有可能是因为查看方式没设对,需要设置为查看 所有文件。


5.修改文件内容

当我们打开目标文件后会发现里面什么也没有,这时把我们的屏蔽代码粘贴进去即可,关闭记事本(记得点击保存),这样我们的目标文件就修改好了。 #define _CRT_SECURE_NO_WARNINGS 1    


♣️测试 

 经过我们的一番操作,已经告诉了编译器一件事:每次新建源文件时都帮我们加上这段屏蔽代码,编译器也是很听话,每次都会给我们加上代码,以便我们能愉快的使用 scanf 至于这段代码什么时候失效:

  1. 重装编译器时,此时目标文件内容会重置
  2. 升级 Visual Studio 时,有可能VS在升级后会将目标文件覆盖(没测试过,但最好别升级)
  3. 更换电脑时,毕竟不是每个人的 Visual Studio 都会像我们一样操作过,所以每换一次电脑就需要重新检查、操作一遍

 🎉总结

  本文给大家介绍了 C4996 问题出现的原因以及解决方法,scanf_s 虽好,可不要随便用,学会使用我们的一劳永逸方法才舒服,让编译器由原来的禁止到帮我们写屏蔽代码,微软看了都想连夜修复这个漏洞。如果你学会了解决 C4996 的方法,不妨去自己电脑上操作一下,如果成功了记得去帮你的同学解决这个问题。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
利用元素法简单解答空间几何体问题——高等数学
相信很多人初学的时候和我一样对这种三维空间的几何体计算方面有困难。我也曾百度过关于几何体体积/表面积的求法,但是始终不是很明白百度上的那种方法。这篇文章让你彻底理解这个万能的几何思想:“元素法”
全栈程序员站长
2022/06/26
9590
利用元素法简单解答空间几何体问题——高等数学
圆柱表面积公式计算器_根据体重体表面积计算公式
多面体的体积和表面积:有立方体计算公式、长方体∧棱柱∨计算公式、三棱柱计算公式、棱锥计算公式、棱台计算公式、圆柱和空心圆柱∧管∨计算公式、斜线直圆柱计算公式、直圆锥计算公式、圆台计算公式、球计算公式、球扇形∧球楔∨计算公式、球缺计算公式、圆环体∧胎∨计算公式、球带体计算公式、桶形计算公式、椭球体计算公式、交叉圆柱体计算公式、梯形体计算公式等。
全栈程序员站长
2022/09/29
1.3K0
数学公式定理
当lim(α/β)=0 时,则称α是β的高阶无穷小.即两个无穷小都趋于0时,α比β趋于 0 更快;
zhangjiqun
2024/12/16
1020
数学公式定理
22届考研模拟卷(公共数学二)汇总
现在是 2022-1-1,我简单的点评一下今年各位老师的出卷,如果读者想刷这一年的,可以作为参考
一只野生彩色铅笔
2022/09/20
3.6K0
22届考研模拟卷(公共数学二)汇总
三角函数公式和图像大全[通俗易懂]
a2-b2=(a+b)(a-b) a3+b3=(a+b)(a2-ab+b2) a3-b3=(a-b)(a2+ab+b2)
全栈程序员站长
2022/11/04
16.3K0
三角函数公式和图像大全[通俗易懂]
圆台侧面积和体积公式的推导过程_圆台体积公式和表面积
  取微小一段函数可近似看成直线方程,绕x轴旋转一周得到一圆台,那么,旋转面面积就可近似为所有微小圆台的侧面积之和。取n趋于无穷时的极限便可得到旋转曲面的面积。
全栈程序员站长
2022/09/20
5.2K0
圆台侧面积和体积公式的推导过程_圆台体积公式和表面积
从不定积分到斯托克斯公式
学完高数的人都知道,我的标题其实是写了涵盖了所有的积分学知识。主要是整理内容,串成一条线。初读书很厚,读到现在又很薄。
云深无际
2024/10/29
1880
从不定积分到斯托克斯公式
深入理解渲染方程
在图形学入门(三):基础着色中,我们讨论了 Phong 反射模型,当时我们提到过 Phong 反射模型不是一个物理模型,而是一个经验模型,这意味着这个模型对光照效果的模拟是不准确的。即便在简单情况下它能近似出一些不错的效果,但随着场景的复杂度提升(例如复杂的光照、复杂的材质等),要想继续用 Phong 反射模型达到很强的真实感就变得越来越困难。例如下面的这幅图1中,士兵和长官的铠甲上都投影出了电梯里非常复杂的灯光,在后面的长官的铠甲上还能看到前面两个士兵的投影:
zhiruili
2021/08/10
2.2K0
深入理解渲染方程
用Julia学习微积分:这有一份高赞数学教程 | 附习题+代码
以快速简洁闻名Julia,本身就是为计算科学的需要而生。用它来学习微积分再合适不过了,而且Julia的语法更贴近实际的数学表达式,对没学过编程语音的初学者非常友好。
量子位
2019/05/17
1.6K0
用Julia学习微积分:这有一份高赞数学教程 | 附习题+代码
微积分的发现是人类精神的最高胜利
在一切理论成就中,未必再有什么像17世纪下半叶微积分的发现那样被看作人类精神的最高胜利了,如果在某个地方我们看到人类精神的纯粹的和唯一的功绩,那正是在这里。——恩格斯
程序员小猿
2021/01/19
5630
向量微积分一文速通:从曲线积分到曲面积分
文章很短也很长,两类积分,在曲线和曲面上,四种类型,分别在标量和矢量情况下。三个定理,格林,高斯,斯托克斯。以及完整的微积分基本定理,在低维和高维之间互相连通。不管怎么说,会不会算,那是计算问题,如果不会区分,那是真没学会。
云深无际
2024/12/03
5540
向量微积分一文速通:从曲线积分到曲面积分
漫步微积分三十四——体积计算:圆柱壳法
为了理解这种方法,考虑图1左边所示的区域,也就是,第一象限数轴和所示示曲线 y=f(x) y=f(x)围成的区域。如果这个区域绕 x x轴旋转,那么图中的垂直窄带生成一个圆盘,我们能够从 x=0 x=0到 x=b x=b区间上积分这些圆盘的体积得到总体积。当然,这是上篇文章中描述的圆盘法。然而,如果区域绕 y y轴旋转,就像图中间的那样,那么我们获得完全不同的物体,垂直窄带产生了很薄的圆柱壳。这个壳可以看做一个罐头,只是其顶部和底部已被去掉,或者很薄的纸板。其体积 dV dV本质上是内圆柱表面积 (2πxy) (2\pi xy)乘以厚度 (dx) (dx),所以
全栈程序员站长
2022/06/26
2.5K0
漫步微积分三十四——体积计算:圆柱壳法
有限元法(FEM)
空间和时间相关问题的物理定律通常用偏微分方程(PDE)来描述。对于绝大多数的几何结构和所面对的问题来说,可能无法求出这些偏微分方程的解析解。不过,在通常的情况下,可以根据不同的离散化 类型来构造出近似的方程,得出与这些偏微分方程近似的数值模型方程,并可以用数值方法求解。如此,这些数值模型方程的解就是相应的偏微分方程真实解的近似解。有限元法(FEM)就是用来计算出这些近似解的。
技术客
2022/05/19
2.1K0
一文速通多元函数.上
一个变量的世界研究明白没有?不明白就不明白吧,无所谓的。没有多元函数的微积分是不完美的,真的几个学科转下来,真的不一样,想法就不一样。
云深无际
2024/08/21
1370
一文速通多元函数.上
蒙特卡罗(Monte Carlo)方法——从数学原理到实际案例
Monte Carlo方法是一种应用随机数来进行计算机模拟的方法,通过对所研究系统进行随机观察抽样并对样本值进行统计分析,来得到所研究系统的某些参数。
mindtechnist
2025/05/15
8420
蒙特卡罗(Monte Carlo)方法——从数学原理到实际案例
数值计算用Matlab?不,用python | 技术创作特训营第一期
作为理工科的社畜,懂计算会计算是一个必不可少的技能,其中尤其是对于土木工程人来说,结构力学、弹塑性力学、计算力学是数值计算中无法逾越的一道坎。由于Matlab简单使用,好学好操作,工科人往往都喜欢使用Matlab来实现数值算法。但是Matlab有几个缺点:
EatRice
2023/08/11
9700
数值计算用Matlab?不,用python | 技术创作特训营第一期
武忠祥老师每日一题|第304 - 319题
证明极限的存在性: 1. 单调有界准则(抽象型函数) 2. 夹逼准则(具体型函数)
一只野生彩色铅笔
2022/09/20
1.4K0
瞎扯数学分析——微积分(大白话版)
公理体系的例子,想说明人类抽象的另外一个方向:语言抽象(结构抽象已经在介绍伽罗华群论时介绍过)。 为了让非数学专业的人能够看下去,采用了大量描述性语言,所以严谨是谈不上的,只能算瞎扯。 现代数学基础有三大分支:分析,代数和几何。这篇帖子以尽量通俗的白话介绍数学分析。数学分析是现代数学的第一座高峰。 最后为了说明在数学中,证明解的存在性比如何计算解本身要重要得多,用了两个理论经济学中著名的存在性定理(阿罗的一般均衡存在性定理和阿罗的公平不可能存在定理)为例子来说明数学家认识世界和理解问题的思维方式,以及存在性的重要性:阿罗的一般均衡存在性,奠定了整个微观经济学的逻辑基础--微观经济学因此成为科学而不是幻想或民科;阿罗的公平不可能存在定理,摧毁了西方经济学界上百年努力发展,并是整个应用经济学三大支柱之一的福利经济学的逻辑基础,使其一切理论成果和政策结论成为泡影。
Ai学习的老章
2021/02/05
2.1K0
C# 入门深度学习:万字长文讲解微积分和梯度下降
由于学习微积分需要一定的基础知识,但是由于本教程不是数学书,所以不能一一详细介绍基础知识,读者需要自行了解学习初等函数、三角函数等基础知识。
痴者工良
2025/03/26
930
C# 入门深度学习:万字长文讲解微积分和梯度下降
刚体力学整理
质点:一个有质量的几何点,忽略其大小、形状及内部结构的影响,在空间只占据一个点的位置。它是对实际研究对象的简化,理想模型。
算法之名
2023/10/16
1.2K0
刚体力学整理
推荐阅读
相关推荐
利用元素法简单解答空间几何体问题——高等数学
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档