首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

异常提示C4996怎么办

2013-02-24 
错误提示C4996怎么处理?使用的VS2012编译程序。// 求两数之和.cpp : 定义控制台应用程序的入口点。//#includ

错误提示C4996怎么处理?
使用的VS2012编译程序。
// 求两数之和.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
int a,b,sum;
printf("请输入两个整数\n");
scanf("%d,%d",&a,&b);
sum=a+b;
printf("%d",sum);
return 0;
}

错误信息
错误1error 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.f:\程序源\目标生成程序\求两数之和\求两数之和.cpp111求两数之和

[解决办法]
用函数scanf_s().
[解决办法]
ANSI C中没有scanf_s(),只有scanf(),scanf()在读取时不检查边界,所以可能会造成内在泄露。所以vc++2005/2008中提供了scanf_s(),在调用时,必须提供一个数字以表明最多读取多少位字符。


#include <stdio.h>
#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
int a,b,sum;
printf("请输入两个整数\n");
scanf_s("%d,%d",&a,1,&b,1);
sum=a+b;
printf("%d",sum);
return 0;
}

[解决办法]
这是ide的安全检查,和c语言本身没关系。

至于这个scanf_s,建议可以看看它的实现,如何增强安全检查和控制。
[解决办法]
Consider using scanf_s instead. 

热点排行
Bad Request.