void main() { int tmp; printf("请输入需要查找的数值\n"); scanf("%d",&tmp); system("pause"); }
走同样的路,发现不同的人生
c:code二分查找二分查找source.cpp(11): error C4996: 'scanf': 该函数或变量可能不安全。考虑使用 scanf_s 代替。要禁用弃用,请使用 _CRT_SECURE_NO_WARNINGS。详细信息请参阅在线帮助。 1> c:program files (x86)microsoft Visual Studio 12.0vcincludestdio.h(283) :参见“scanf”的声明
英语可以的话,你应该能看懂编译器的提示,从vs某个版本开始,原始的stdio中的绝大多数输入输出函数例如printf都被标记上了unsafe,以前是warning,有可能是你开了-Wall,也可能是现在直接强制error了,换成printf_s这样的安全版本就可以了,用法基本类似,详情可以查阅msdn
楼上写的都不是重点,重点在于C 11对于字符串严格的溢出检查解决:你至于要把scanf换为scanf_s就行
头文件<cstdio.h>
vs2013有强制的安全检查,scanf属于不安全函数,在c 11 标准中推荐使用scanf_s,不想使用的话就可以在头部最开始的地方#define _CRT_SECURE_NO_WARNINGS 跳过安全检查!
c:code二分查找二分查找source.cpp(11): error C4996: 'scanf': 该函数或变量可能不安全。考虑使用 scanf_s 代替。要禁用弃用,请使用 _CRT_SECURE_NO_WARNINGS。详细信息请参阅在线帮助。
1> c:program files (x86)microsoft Visual Studio 12.0vcincludestdio.h(283) :参见“scanf”的声明
英语可以的话,你应该能看懂编译器的提示,从vs某个版本开始,原始的stdio中的绝大多数输入输出函数例如printf都被标记上了unsafe,以前是warning,有可能是你开了-Wall,也可能是现在直接强制error了,换成printf_s这样的安全版本就可以了,用法基本类似,详情可以查阅msdn
楼上写的都不是重点,重点在于C 11对于字符串严格的溢出检查解决:你至于要把scanf换为scanf_s就行
头文件<cstdio.h>
vs2013有强制的安全检查,scanf属于不安全函数,在c 11 标准中推荐使用scanf_s,不想使用的话就可以在头部最开始的地方#define _CRT_SECURE_NO_WARNINGS 跳过安全检查!