错误实例
#include <stdio.h>
int main() {
int a;
scanf("%d", &a);
printf("%d", a);
return 0;
}
错误 C4996 ‘scanf’:
This function or variable may be unsafe. Consider using scanf_s instead.
To disabledeprecation,use_CRT_SECURE_NO_WARNINGS. See online help for details.
此函数或变量可能不安全。考虑使用scanf_s代替。要禁用弃用,请使用_CRT_SECURE_NO_WARNINGS。有关详细信息,请参见联机帮助。
解决方案 :
- 使用scanf_s代替scanf
- 在代码的最上面添加 :#define _CRT_SECURE_NO_WARNINGS
正确操作1 :
#include <stdio.h>
int main() {
int a;
scanf_s("%d", &a);
printf("%d", a);
return 0;
}
正确操作2 :
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int a;
scanf("%d", &a);
printf("%d", a);
return 0;
}
两种方法分析 :
- 用scanf_s代替scanf,只能在VS2019这个编译器有用,换一个编译器,换一个操作系统,可能就不行了,scanf_s是VS2019的专属方法。通俗的话来讲,scanf是c库函数(权威的,全国通用的),而scanf_s只是VS2019自己包装的(只能在自己的编译器用,其他地方不认)
- 添加 :#define _CRT_SECURE_NO_WARNINGS 在哪里都可以用,简称添加宏。专业的程序员建议用这个
了解更多
scanf在VS2012以前的版本只是警告,scanf()在VS2019报错