IntelliJ IDEA 端口映射 高阶函数 vue组件 DHCP postgresql charts cassandra usb Amaze UI vue部署 vue学习 jquery触发点击事件 基于bootstrap的框架 内存计算 android网络请求 python位运算 python字符串匹配 java教程 学java基础 linuxshell 运行时错误1004 销售单打印软件 圆形截图 超星网课助手 keytool下载 7个人 谷歌地球用不了 小米手环充电多久 ip地址转换器 文字转语音软件免费版 js切割字符串 微信小程序开发实例 txplatform onaccuracychanged qq浏览器手机版 通灵学院在哪 ps平面广告设计教程 ps怎么做动画 maya骨骼绑定
当前位置: 首页 > 学习教程  > 编程语言

函数之“scanf_s“

2020/11/4 13:47:52 文章标签:

错误提示: 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. 问题描述: 在使用VS 2019 的开发者会遇到这样的问题&…

错误提示:

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.

问题描述:

在使用VS 2019 的开发者会遇到这样的问题,在使用scanf从键盘上把数据输入到指定的变量的时候,往往会出现类似于下面的警告: warning C4996: ‘scanf’: This function or variable may be unsafe.

 int* p1, * p2, * p, a, b;
	scanf("%d %d", &a, &b);
	p1 = &a; p2 = &b;
	if(a<b)
	{
		p = p1; p1 = p2; p2 = p;
	}
	printf("max=%d,min=%d", *p1, *p2);
	return 0;

原因分析:

出现这样的警告,是因为VS2019中认为函数如果使用不当,可能会产生诸如内存泄露、缓冲区溢出、非法访问等安全问题。这些函数中就包括scanf。
对于这些问题,VS2019建议使用函数的更高级的安全版本,即在函数名后面加上_s。安全版本函数使用起来更有效,也便于识别,如:scanf_s。


解决方案:

scanf("%d %d", &a, &b);变更为就可以了scanf_s("%d %d", &a, &b);就可以了。

//完整代码
#include<stdio.h>

int main()
{
	int* p1, * p2, * p, a, b;
	scanf_s("%d %d", &a, &b);
	p1 = &a; p2 = &b;
	if(a<b)
	{
		p = p1; p1 = p2; p2 = p;
	}
	printf("max=%d,min=%d", *p1, *p2);
	return 0;
}

这样代码就可以运行了


本文链接: http://www.dtmao.cc/news_show_350000.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?