关于c语言报错error C4996: ‘scanf‘: This function or variable may be unsafe.
关于c语言scanf
这里记录一下复习c语言数据结构时遇到的一些问题:
在VS中编译 C 语言项目,如果使用了 scanf 函数,编译时便会提示如下错误:
int x; /*循环输入顺序栈元素用*/DataType top; /*存放栈顶元素用*/printf("请输入顺序栈的数据,按-1结束:");scanf_s("%d", &x);while (Push_SeqStack(s, x)) {scanf("%d", &x);if (x == -1) break;}printf("\n入栈后栈内元素如下:");Print_SeqStack(s);printf("\n");
经过查阅网上资料,基本找到原因(摘自网络):
这是微软的警告,主要因为那些C库的函数,很多函数内部是不进行参数检测的(包括越界类的),微软担心使用这些会造成内存异常,所以就改写了同样功能的函数,改写了的函数进行了参数的检测,使用这些新的函数会更安全和便捷。关于这些改写的函数你不用专门去记忆,因为编译器对于每个函数在给出警告时,都会告诉你相应的安全函数,查看警告信息就可以获知,在使用时也再查看一下MSDN详细了解。
Visual C++ 使用了更加安全的 run-time library routines 。新的Security CRT functions(就是那些带有“_s”后缀的函数),解决这个报错只需要把scanf换成scanf_s最简单。
网上还有其他两种解决方案,但是本人没有亲自尝试过:
二:更改预处理定义:
项目->属性->配置属性->C/C++ -> 预处理器 -> 预处理器定义,增加:_CRT_SECURE_NO_DEPRECATE
三:在预编译头文件 stdafx.h 里(要在没有include任何头文件之前)定义下面的宏:
#define _CRT_SECURE_NO_DEPRECATE#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1
关于c语言报错error C4996: ‘scanf‘: This function or variable may be unsafe.相关推荐
- VS2013运行报错error C4996: 'scanf': This function or variable may be unsafe.
报错内容: 1>------ Build started: Project: 约瑟夫问题, Configuration: Debug Win32 ------ 1> 约瑟夫问题.cpp 1 ...
- VC2019编译报错 error C4996: This function or variable may be unsafe
[问题描述] 使用新安装的VS2019编译C代码保报错error C4996: 'sprintf': This function or variable may be unsafe. Consider ...
- 解决VS2013中出现类似于error C4996: 'scanf': This function or variable may be unsafe的安全检查错误
我用的是visual studio 2019,提示出错.用下面第5种办法,完美解决问题... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...
- 解决VS2013或2017中类似于:error C4996: 'scanf': This function or variable may be unsafe的问题
用惯了之前的scanf()函数,突然要用scanf_s()函数多多少少有点不习惯,所以在这里给大家介绍一下scanf_s的用法或好处吧! 1.scanf_s函数格式控制字符串中除了格式声明之外,如果有 ...
- error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead.
项目 --> 属性 --> C/C++ --> 常规 --> SDL检查(设置为否)--> 应用 --> 确定
- VS2015 scanf 函数报错 error C4996: 'scanf'
错误提示:error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. ...
- 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 ...
- 《C语言杂记》解决 error c4996 ‘fopen‘ This function or variable may be unsafe
[问题描述] 在Visual Studio中使用功能'fopen'操作文件时,出现以下错误: error C4996: 'fopen': This function or variable may b ...
- C++/OpenCV:error C4996: ‘fopen‘: This function or variable may be unsafe.
在调用fopen函数时会出现类似下面这种报错. error C4996: 'fopen': This function or variable may be unsafe. Consider usin ...
最新文章
- python异常处理及内置模块
- echart多个柱状图 设置y轴显示_Origin神教程:柱状图还是2D的吗?也没有误差棒?...
- oracle 中的闪回
- 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包
- android歌词效果,自定义View:Android歌词控件
- 前端开发 “性能”有多重要
- Dom4j工具--XML的DOM解析(下)--写操作
- 鸿蒙系统对手机性能的提升,鸿蒙OS手机版再爆新特性,流畅度和性能大幅提升,用户评价很高...
- python100例详解-python案例讲解
- wps 将html转为word,用WPS快速将网页内容转换为WORD文档
- 记一次有惊无险的 JVM 优化经历
- Redis 基本命令和五大基础数据类型
- MFC隐藏任务栏图标并显示到托盘
- linux wrf 系统_WRF模式学习_从linux安装开始
- ios 操作通讯录联系人
- Cesium 角度计算
- 微信小程序开发——调用免费天气api接口(高德、天气API)
- 制造并批量生产现实版“储物戒指”
- 阿里云小程序时代来临,中小企业和商家该如何入局
- 仿QQ浏览器mac版官网主页 html css3特效