关于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.相关推荐

  1. VS2013运行报错error C4996: 'scanf': This function or variable may be unsafe.

    报错内容: 1>------ Build started: Project: 约瑟夫问题, Configuration: Debug Win32 ------ 1> 约瑟夫问题.cpp 1 ...

  2. VC2019编译报错 error C4996: This function or variable may be unsafe

    [问题描述] 使用新安装的VS2019编译C代码保报错error C4996: 'sprintf': This function or variable may be unsafe. Consider ...

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

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

  4. 解决VS2013或2017中类似于:error C4996: 'scanf': This function or variable may be unsafe的问题

    用惯了之前的scanf()函数,突然要用scanf_s()函数多多少少有点不习惯,所以在这里给大家介绍一下scanf_s的用法或好处吧! 1.scanf_s函数格式控制字符串中除了格式声明之外,如果有 ...

  5. error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead.

    项目 --> 属性 --> C/C++ --> 常规 --> SDL检查(设置为否)--> 应用 --> 确定

  6. VS2015 scanf 函数报错 error C4996: 'scanf'

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

  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. 《C语言杂记》解决 error c4996 ‘fopen‘ This function or variable may be unsafe

    [问题描述] 在Visual Studio中使用功能'fopen'操作文件时,出现以下错误: error C4996: 'fopen': This function or variable may b ...

  9. 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 ...

最新文章

  1. python异常处理及内置模块
  2. echart多个柱状图 设置y轴显示_Origin神教程:柱状图还是2D的吗?也没有误差棒?...
  3. oracle 中的闪回
  4. 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包
  5. android歌词效果,自定义View:Android歌词控件
  6. 前端开发 “性能”有多重要
  7. Dom4j工具--XML的DOM解析(下)--写操作
  8. 鸿蒙系统对手机性能的提升,鸿蒙OS手机版再爆新特性,流畅度和性能大幅提升,用户评价很高...
  9. python100例详解-python案例讲解
  10. wps 将html转为word,用WPS快速将网页内容转换为WORD文档
  11. 记一次有惊无险的 JVM 优化经历
  12. Redis 基本命令和五大基础数据类型
  13. MFC隐藏任务栏图标并显示到托盘
  14. linux wrf 系统_WRF模式学习_从linux安装开始
  15. ios 操作通讯录联系人
  16. Cesium 角度计算
  17. 微信小程序开发——调用免费天气api接口(高德、天气API)
  18. 制造并批量生产现实版“储物戒指”
  19. 阿里云小程序时代来临,中小企业和商家该如何入局
  20. 仿QQ浏览器mac版官网主页 html css3特效

热门文章

  1. 华为手机保留数据解锁密码手机保资料解锁原理华为解锁屏密码不删资料华为手机怎么保留数据解锁
  2. 手机端HTML网页生成 meta标签针对苹果手机页面设计问题
  3. test信息收集7(incognito Token)
  4. beanstalkd java使用_BeansTalkd的使用与安装
  5. git学习与上传方法
  6. Git-02-分支使用
  7. 目标检测:SSD算法原理综述
  8. 某易云音乐JS逆向案例
  9. web漏洞--xss攻击(跨站脚本攻击漏洞)
  10. Git图形界面的使用