-
-
[分享][讨论]在使用VS2017编写代码时,使用scanf 报错,解决办法
-
2021-9-25 18:35
2997
-
[分享][讨论]在使用VS2017编写代码时,使用scanf 报错,解决办法
问题描述:
在使用VS2017编写代码时,出现如下错误:
error 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.
意思是,scanf 这个函数或者变量可能不安全。建议考虑使用函数scanf_s。为了不显示弃用说明(应该指的这个错误提示),可以使用_CRT_SECURE_NO_WARNINGS。详情见在线帮助。
问题解决:
方法一(假设仅在VS上编程)
如果只使用VS编写代码,那么还是使用函数scanf_s比较好,毕竟安全可靠,而且使用难度也没大很多。
方法二 (假设不止使用VS编程)
如果编写的代码需要移植到其他IDE上,由于函数scanf_s是VS特有的,其他IDE将不认识这个函数,从而报错。如果在VS上仍希望使用函数scanf,可以采取以下3种手段。
一 在VS上编程时,第一行首先写上如下语句。
#define _CRT_SECURE_NO_WARNINGS
此后,可正常使用函数scanf。系统将不会报错。如下代码。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int x;
scanf("%d", &x);
1 2 3 4 5 | printf( "%d\n" , x);
system( "pause" );
return 0 ;
|
}
二 如果不想在第一行输入该语句,也可以在VS的项目属性中进行配置,这样,在整个项目中都可以正常使用函数scanf。配置的步骤如下:
找到菜单栏的项目→项目的属性→C/C++→预处理器
右侧有个预处理器定义,在其参数中加上 _CRT_SECURE_NO_WARNINGS,
段落引用
[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界