在VS中,对于初学者来说存在一些各种意想不到的错误,但比较友好的是新版本中在报错的同时会指出错误地方。以下说说VS2019中 c4996 sacnf报错的解决方法。

操作环境:win10+VS2019

错误代码:C4996


实例说明

进行报错

错误分析

严重性

代码

说明

错误

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.

VS认为直接使用C语言定义的函数scanf不安全,而在VS编译器所提供的包括 scanf_s、wscanf_s等以_s结尾版本的函数具有安全增强功能。scanf等函数存在于版本较旧的CRT(C runtime library, part of the C standard library)中,具有安全性问题,比如在读取字符时,若不指定%s的宽度,可能会导致缓冲区溢出。


解决方案

1.使用VS中所推荐使用的方法 将scanf改为scanf_s

显示运行成功

存在问题:虽然说这种方式可以解决问题,但是实际上scanf是c语言提供的函数,可以使用大多数的编译器,而scanf_s这个函数只是VS编译器提供的一个它自身认为安全的一个版本,在其他编译器下不一定适用,不能跨版本使用。

2.屏蔽出4996错误,即在头文件之前加上以下一行代码#pragma warning(disable:4996)

显示运行成功

存在问题:每次新建一个项目都需多加一行代码,增加工作量。

不过也可以通过设置一个文件,里面包含这一串代码,在新建时就不用输入

1.打开visual studiod的安装位置。我用的是visual studio 2019。目录在:E:\Microsoft                 Visual Studio\2019\Preview\Common7\IDE\VC\VCProjectItems

2.VCProjectItems下的newc++file.cpp文件用NotPad++或者editplus方式打开,添加上                 #define _CRT_SECURE_NO_WARNINGS 1,然后保存,下一次创建的时候就不需要在手动加入。

3.同第二个方法,加上一串屏蔽代码#define _CRT_SECURE_NO_WARNINGS 1

希望对你有所帮助~

VS中报错C4996 scanf错误错误介绍解决方案相关推荐

  1. VS中报错C4996 怎么办?

    有遇到过这种错误吗?VS中报错C4996 其实这就是一些警告,但是如果你用了很多第三方的开源代码,你很难保证这些开源代码中使用的函数以及编码规范都遵循了VS最新的要求,所以很可能就会报错,注意时报错不 ...

  2. node+express中报错Error: request entity too large解决方案

    原因: express.urlencoded()中间件默认只能解析100kb的application/x-www-form-urlencoded编码的文件,当文件大小超过100Kb就会报错 解决方案: ...

  3. c语言——程序出现C4996:scanf 等错误的解决方法

    c语言--程序出现C4996:scanf 等错误的解决方法(不用scanf_s替换解决) 问题实例 解决方法 方法1 方法2 在VS编译器下,编写的c语言程序在调试编译时可能会出现c4996警告或错误 ...

  4. Centos下gcc的安装、gcc的更新、gcc安装过程中报错:make[1]: *** [stage1-bubble] 错误 2

    Centos下gcc的安装.gcc的更新.gcc安装过程中报错:make[1]: *** [stage1-bubble] 错误 2 文章目录: 1 下载gcc的源码 1.1 源码下载地址: 1.2 下 ...

  5. 解决VS2013中出现类似于error C4996: 'scanf': This function or variable may be unsafe的安全检查错误

    我用的是visual studio 2019,提示出错.用下面第5种办法,完美解决问题... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...

  6. C4996 ‘scanf‘: This function or variable may be unsafe. Consider using scanf_s instead.错误提示

    最近在在使用visual studio创建C语言的时候遇到的错误: 如下: C4996 'scanf': This function or variable may be unsafe. Consid ...

  7. VS编译错误C4996 'scanf': This function or variable may be unsafe.

    最近用VS编写代码时,老碰到这个错误: C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s i ...

  8. 错误C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. 最高效解决办法!!

    VS2015运行出错报告:严重性    代码说明项目文件行禁止显示状态    错误    C4996    'scanf': This function or variable may be unsa ...

  9. visual studio报错:error C4996: ‘scanf‘

    文章目录 前言 原因 解决方法 方法一:使用scanf_s 方法二:在include前面添加宏定义,注意是在最前面添加,如下图 方法三:添加头部文件,在include前后皆可 方法四:找到newc++ ...

最新文章

  1. DataBase 之 拉链表结构设计
  2. GPS定位精度单位CEP、RMS、2DRMS
  3. [持续更新]UnsatisfiedLinkError常见问题及解决方案
  4. android app 历史版本,怎么找到App的所有历史版本,以及每次改版的变更点呢?
  5. hdu4965 巧用矩阵乘法结合律
  6. python post请求参数为list_浅谈python3发送post请求参数为空的情况
  7. 产品经理如何通过拆产品,持续提升产品能力?附案例
  8. python3默认编码标准是_python3 编码
  9. 剑指Offer之二叉树中的和为某一路径的值
  10. 数控机床手动编程能否用计算机验证,数控编程的方法有几种_数控编程的步骤...
  11. 北大AI第八讲 李航 自然语言处理的现实与挑战
  12. java 读取clob字段的几种方法
  13. python第七天--文件练
  14. atitit.React   优缺点 相比angular react是最靠谱的web ui组件化方案了
  15. 普通的(贬义)存在感稀薄的解图工具RipFileSystem华丽的再现了
  16. postman中从url中获取各参数值
  17. 一维条码之code93码的生成和打印
  18. 在线购物系统——设计类
  19. 海归学子创新创业座谈会:龙凡教授向浙江省委书记车俊汇报 Conflux 研发进展...
  20. FXS/FXO, BRI/PRI, IPPBX

热门文章

  1. 基于vue创建的悦听音乐盒子
  2. MySql同时查询三个不关联的表,同时获取到三个表的数据,并按照某一字段排序
  3. Linux 系统 less命令详解
  4. 日本区域5G专网发展分析及思考
  5. splice()方法 使用介绍
  6. geotools如何引入jar包
  7. MTK 安卓主板 开发板,工业安卓一体机的特点与优势
  8. 纯代码实现人民币兑换美元
  9. 谷歌浏览器如何整页截图
  10. Kali扫描 arachni的安装与使用