C语言:使用scanf函数时出现错误‘scanf‘: This function or variable may be unsafe.

在初学c语言使用scanf函数时,我的举例程序如下:

#include<stdio.h>
int main()
{
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	scanf("%d%d", &num1, &num2);//取地址符号&
	sum = num1 + num2;
	printf("sum = %d\n", sum);
		return 0;
}

会出现如下图中的错误:
在这里插入图片描述出现错误的原因:scanf是C语言提供的,scanf_s不是标准C语言提供的,是VS编译器提供的,建议不使用scanf_s,因为若使用了代码就不具有跨平台性和可移植性,你换成这个VS平台使用的函数形式换到别的平台这个代码就出错了,
所以解决方式为根据他的提示:在程序第一行加入:

#define _CRT_SECURE_NO_WARNINGS 1

就可以看到正常运行:

在这里插入图片描述在这里插入图片描述
实际上除了scanf,还有strcpy strlen strcat等等,都会如此,因为认为这些函数都是不安全的,所以高版本的VS默认他们不能使用,代替它们的是在这些函数后面加“_s”,如“scanf_s”,所有这些都在程序第一行加上:#define _CRT_SECURE_NO_WARNINGS 1就可以正常运行。

想要一劳永逸解决这个问题:找到你的VS安装路径,打开其中的VC文件夹下的vcprojectitems下的newc++file.cpp,我的为:
在这里插入图片描述

打开添加一行“#define _CRT_SECURE_NO_WARNINGS 1”,然后保存。

(建议下载Notepad++这个软件,因为用记事本打开在保存时会出现“拒绝访问”,若弹出“是否要用管理员模式启动”点击是,然后重新打开,在保存就可以了)
在这里插入图片描述再次在VS中添加源文件,打开首行就会有:
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值