warning C4996: 为什么总是出现 参见“scanf”的声明

warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. 处理办法

 

这是一个安全警告, 意思是说scanf有安全隐患, 应当使用更加安全的scanf_s函数来代替它. 因为scanf在读取时不检查边界,所以可能会造成内存泄露. 为此, VC++提供了scanf_s函数作为替代. scanf_s必须提供一个数字参数以表明最多读取多少位字符. 不过对于初学者来说, 很少会在意这些, 也就无所谓了, 一般无视就可以了.如果对程序安全性和健壮性要求比较高的话, 就用scanf_s. 顺便说一句, scanf_s不是ANSI C标准的一部分, 是VC自己提供。

微软认为scanf的使用存在安全隐患,因为C/C++中的字符串处理都是以\0为截止符的,如果搜索不到\0,容易出现字符串越界所有vc扩展的所谓安全标准库,都添加了一个参数用以指定字符串参数的长度,用以避免这种安全隐患。

 

1>------ 已启动生成: 项目: 3, 配置: Debug Win32 ------ 1> 3.c 1>c:\users\administrator\documents\visual studio 2010\projects\3\3\3.c(9): warning 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. 1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304) : 参见scanf”的声明 1>c:\users\administrator\documents\visual studio 2010\projects\3\3\3.c(12): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(234) : 参见“fopen”的声明 1>c:\users\administrator\documents\visual studio 2010\projects\3\3\3.c(19): error C2143: 语法错误 : 缺少“;”(在“类型”的前面) 1>c:\users\administrator\documents\visual studio 2010\projects\3\3\3.c(20): error C2065: “i”:声明的标识符 1>c:\users\administrator\documents\visual studio 2010\projects\3\3\3.c(21): error C2065: “i”:声明的标识符 1>c:\users\administrator\documents\visual studio 2010\projects\3\3\3.c(21): error C2065: “i”:声明的标识符 1>c:\users\administrator\documents\visual studio 2010\projects\3\3\3.c(21): error C2065: “i”:声明的标识符 1>c:\users\administrator\documents\visual studio 2010\projects\3\3\3.c(22): error C2065: “j”:声明的标识符 1>c:\users\administrator\documents\visual studio 2010\projects\3\3\3.c(22): error C2065: “i”:声明的标识符 1>c:\users\administrator\documents\visual studio 2010\projects\3\3\3.c(24): error C2065: “i”:声明的标识符 1>c:\users\administrator\documents\visual studio 2010\projects\3\3\3.c(28): error C2065: “j”:声明的标识符 ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
03-11
1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(22): error C2275: “Student”: 将此类型用作表达式非法 1> d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(11) : 参见“Student”的声明 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(22): error C2146: 语法错误: 缺少“;”(在标识符“newStudent”的前面) 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(22): error C2065: “newStudent”:声明的标识符 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(24): error C2065: “newStudent”:声明的标识符 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(24): error C2224: “.id”的左侧必须具有结构/联合类型 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(28): error C2065: “newStudent”:声明的标识符 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(28): error C2224: “.name”的左侧必须具有结构/联合类型 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(28): error C2065: “newStudent”:声明的标识符 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(28): error C2224: “.name”的左侧必须具有结构/联合类型 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(28): warning C4133: “函数”: 从“FILE *”到“char *”的类型不兼容 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(28): error C2198: “fgets”: 用于调用的参数太少 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(29): error C2065: “newStudent”:声明的标识符 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(29): error C2224: “.name”的左侧必须具有结构/联合类型 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(29): error C2065: “newStudent”:声明的标识符 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(29): error C2224: “.name”的左侧必须具有结构/联合类型 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(29): error C2198: “strcspn”: 用于调用的参数太少 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(32): error C2065: “newStudent”:声明的标识符 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(32): error C2224: “.score”的左侧必须具有结构/联合类型 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(34): error C2065: “newStudent”:声明的标识符 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(34): error C2440: “=”: 无法从“int”转换为“Student” 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(77): error C2143: 语法错误 : 缺少“;”(在“类型”的前面) 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(78): error C2143: 语法错误 : 缺少“;”(在“类型”的前面) 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(79): error C2065: “total”:声明的标识符 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(81): error C2065: “i”:声明的标识符 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(81): error C2065: “i”:声明的标识符 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(81): error C2065: “i”:声明的标识符 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(82): error C2065: “total”:声明的标识符 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(82): error C2065: “i”:声明的标识符 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(82): warning C4244: “+=”: 从“float”转换到“int”,可能丢失数据 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(84): error C2065: “total”:声明的标识符 1>d:\documents\visual studio 2010\projects\ches\ches\gghghg.c(84): warning C4244: “return”: 从“int”转换到“float”,可能丢失数据 该代码在VC c++2010上报错,但在vs上没有报错
最新发布
04-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值