scanf和scanf_s在VS2013中的使用

scanf和scanf_s在VS2013中的使用

在VS2013中,每次使用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.

给了两种解决办法,要不就是用scanf_s,要不就用_CRT_SECURE_NO_WARNINGS来处理不报错,为什么会出现这种原因呢?

scanf()在读取时不检查边界,所以可能会造成内存泄露,所以VS2013提供了scanf_s()来替代,在调用时,必须提供给scanf_s一个数字以表明读取多少位字符,用法为scanf_s("%c",&letter,sizeof(letter)),否则,即使Ctrl+F7和Ctrl+F5通过了,程序的运行结果也可能与自己所期望大相径庭的。

如果非要用scanf函数,那么通过以下两种方式可以禁止警告:
(1)右击项目——属性——C/C++——预处理器——预处理器定义中增加_CRT_SECURE_NO_WARNINGS,然后点确定,退出。
(2)在函数最顶头进行定义:#define _CRT_SECURE_NO_WARNINGS,也可以禁止报错警告。

举报

时间: 2024-10-23 15:31:04

scanf和scanf_s在VS2013中的使用的相关文章

C语言杂谈(一)scanf()、scanf_s()与错误 C4996

错误 C4996 初学C语言时,第一个接触到的I/O函数便是scanf()了.但在高版本的 Visual Studio (包括但不限于2015.2013.2012)编译代码时,却会出现意想不到的错误.有如下一段简单的代码: #include "stdio.h" int main(void) { int i; printf("Input i\n"); scanf("%d", &i); printf("i is %d",

scanf 和 scanf_s

scanf 和 scanf_s scanf()函数是标准C中提供的标准输入函数,用以用户输入数据 scanf_s()函数是Microsoft公司Visual Studio开发工具提供的一个与scanf()功能相同的安全标准输入函数 从vc++2005开始,VS系统提供了scanf_s().在调用该函数时,必须提供一个数字以表明最多读取多少位字符. 原因和区别 scanf()在读取数据时不检查边界,所以可能会造成内存访问越界: 例如:分配了5字节的空间但是用户输入了10字节,就会导致scanf()

VLFeat开源库介绍及在VS2013中的编译

VLFeat是一个开源的计算机视觉算法库,内容主要包括feature detectors.feature extractors.k-means clustering.randomized kd-tree matching.super-pixelization.它是跨平台的,能够应用在Linux.Mac.Windows平台.它的License是BSD. 在VS2013中编译VLFeat源码操作步骤: 1.      从http://www.vlfeat.org/ 下载源码(或从https://gi

在VS2013中配置QT5 win7_64

转自 在VS2013中配置QT5 win7_64 环境: win x64 + vs2013+QT5+vs_addin 下面示例正确配置QT以及VS2013 + QT Addin开发环境: 下载VS2013: http://pan.baidu.com/s/1geL6aQ3 到官网下载QT5的源码和qt vs-addin插件(在这之前你得在官网注册一个登陆账号): https://www.qt.io/download-open-source/#section-2 下载最新的QT5.8.0版本: 往下

Vs2013中通过Nuget添加不同版本jQuery

vs2013中如果直接更新jQuery则是2X的版本,为了兼容IE浏览器的,一般都是希望使用jQuery1.x版本的jQuery,则可在调出Nuget的控制台,在控制台输入(此例子是下载jQuery 1.11.0): Install-Package jQuery -Version 1.11.0   Vs2013中通过Nuget添加不同版本jQuery,布布扣,bubuko.com

VS2013中的MVC5模板部署到mono上的艰辛历程

在Xamarin.Studio创建的asp.net项目,部署过程非常顺利,没有遇到什么问题:但在VS2013中创建的asp.net项目,部署过程会有一些波折.现在想想,原因是Xamarin.Studio中的项目模板比较简单,只是显示几个文字,并没有用到mvc5中的东西. vs2013新建一个asp.net的项目(目标框架是.net4.5),选择mvc,并且更改身份验证为不适用身份验证. 编译,并发布到jexus默认站点指向的目录,访问之.报出的错误信息如下图. 根据异常堆栈信息,应该是调用Htm

VS2013中Python学习笔记[Django Web的第一个网页]

前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环境的搭建过程,以及Hello World的实现. 第二篇 VS2013中Python学习笔记[基础入门] 我简单学习使用了Python的几个基础的知识点. 第一个Web页面 第一步:首先打开VS2013开发工具 ,新建项目,选择Django Project模版. 修改项目名称,可以查看到项目的文件结

VS2013中使用GDI+绘图

VC范例,400多个例子源代码下载 http://download.csdn.net/detail/bigtree_mfc/7727977 VS2013中使用GDI+绘图和VC6.0不同,在VC6.0中能绘出的图像在VS2013中不会显示,原因就是在VS2013中需要添加初始化GDI+: 绘图 对话框视图类中:(绘图部分大同小异,) void **View::OnDraw(CDC *pDC){ //初始化部分 GdiplusStartupInput gdiplusStartupInput; UL

在VS2013中使用水晶报表

原文:在VS2013中使用水晶报表 又遇到了在B/S系统中打印,打印格式要求比较高,打印出的效果要求高大上.用VS2013中微软自带的报表,实在难以实现应用的效果,主要问题表现在: 1.不能插入用Word做好的打印模板,自己按照模板来做感觉比较费事,实现不了Word的打印效果,一旦打印模板改变,调整格式比较麻烦. 2.在火狐.谷歌浏览器中打印按钮不显示. 想试试水晶报表,无奈VS2013中已经不集成该报表了.需要单独下载安装http://scn.sap.com/docs/DOC-7824.大家可