"warning C4996: “scanf”被声明为否决的" 怎么解决?

如题所述

vc2005认为scanf这样的函数不安全,换成scanf_s。比如下面的代码:

char ch[10];
scanf("%s",ch);

上面的代码不能保证输入长度在10个字符以内,超过10个就是缓冲区溢出,而缓冲区溢出可能会导致执行一些恶意代码。
因此可以换成

scanf_s("%s",ch,10);

不管在控制台输入多少个字符,最多只接受10个。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-02
scanf用scanf_s来替换就可以了。
第2个回答  2011-03-23
不用管
实在要管就加上#include <stdio.h>追问

加上了还是一个样!有没什么办法解决?

追答

不用这个函数吧,VS都觉得他是不安全的,没有其它啥办法了

追问

如果从键盘接收一个数据有没有别的方法实现?

追答

cin啊

本回答被提问者采纳
相似回答