VS编译器提示:C4996 ‘scanf‘: This function or variable may be unsafe. Consider using scanf_s instead.的解决方法

编程知识 更新时间:2023-05-02 05:22:52

博主在使用VS2019编译器运行c代码时控制台提示:错误 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.



我们可以点击控制台的C4996,查看原因和解决方法.

出错原因: Visual Studio 库中的许多函数、成员函数、函数模板和全局变量已 弃用。 某些函数/变量(例如 POSIX 和 Microsoft 特定的函数)被弃用的原因是它们现在使用不同的偏好名称。 某些 C 运行时库函数被弃用的原因是它们不安全,而现在具有更安全的变体。 其他函数/变量被弃用的原因是它们已过时。 弃用消息通常包括已弃用函数或全局变量的建议替换项。

解决方法1:使用预处理器宏禁用警告

若要在 Visual Studio 中定义预处理器宏,请执行以下操作:

  1. 右击项目,打开项目的“属性页”对话框。 有关如何使用“属性页”对话框的信息,请参阅属性页。
  2. 展开“配置属性”>“C/C++”>“预处理器”。
  3. 在“预处理器定义”属性中,添加宏名称。 选择“确定” 进行保存,然后重新生成项目。



若要仅在特定的源文件中定义宏,请在包含头文件的任何行之前添加一行#define _CRT_SECURE_NO_WARNINGS

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>


int main() {

	int num;
	printf("请输入num的值:");
	scanf("%d", &num);
	printf("%d/n", num);

	return 0;
}

运行代码,问题解决

解决方法2:在 Visual Studio 中关闭针对项目的警告

若要在 Visual Studio IDE 中关闭针对整个项目的警告,请执行以下操作:

  1. 打开项目的“属性页”对话框。 有关如何使用“属性页”对话框的信息,请参阅属性页。
  2. 选择“配置属性”>“C/C++”>“高级”属性页。
  3. 编辑“禁用特定警告”属性以添加 4996。 选择“确定”以应用更改。



解决方法3:将scanf函数改用为scanf_s函数,不建议使用此方法

因为scanf_s()函数是VS编译器自带的函数,而并不是C语言标准定义的,所以不建议大家去使用。

更多推荐

VS编译器提示:C4996 ‘scanf‘: This function or variable may be unsafe. Consider using s

本文发布于:2023-04-26 05:48:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/e00c77484b8f1c0f29113c12961a00c0.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:编译器   解决方法   提示   function   scanf

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 104337文章数
  • 26211阅读数
  • 0评论数