VS2019编辑C语言使用scanf()报错

项目场景:

使用VS2019编辑C语言,使用scanf函数接收外部输入,运行报错

问题描述:

#include<stdio.h>
int main()
{
	printf("你好\n");
	int a, b;//定义两个变量
	scanf("%d%d", &a, &b);//外部输入数值,传给a,b
	int sum = a + b;
	printf("%d\n", sum);
	return 0;
}

原因分析:

错误信息:scanf()不安全,建议使用scanf_s,不想出现这样的错误信息,使用_CRT_SECURE_NO_WARNINGS,其中scanf_s()是VS编译器提供的,不是C语言标准的,如果使用,只能在VS里运行。

解决方案:

在源文件前加上_CRT_SECURE_NO_WARNINGS

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	printf("你好\n");
	int a, b;//定义两个变量
	scanf("%d%d", &a, &b);//外部输入数值,传给a,b
	int sum = a + b;
	printf("%d\n", sum);
	return 0;
}

 

VS2019使用scanf函数时,可能会出现一些编译错误或者警告,因为scanf函数在读取输入时,可能会导致缓冲区溢出或者类型不匹配的问题。下面是一些可能出现的问题和解决方法: 1. 关闭scanf的安全检查 在VS2019中,为了避免scanf函数导致的缓冲区溢出问题,会默认开启scanf的安全检查,这可能会导致一些警告或者错误。如果你想关闭这个安全检查,可以在项目属性中进行设置。具体操作如下: - 在解决方案资源管理器中右键单击项目,选择“属性”。 - 在弹出的对话框中,选择“C/C++” -> “预处理器”。 - 在“预处理器定义”一栏中,添加“_CRT_SECURE_NO_WARNINGS”宏定义。 这样就可以关闭scanf的安全检查了,但需要注意的是,关闭安全检查可能会导致一些安全问题,因此你需要自己确保输入的数据是安全的。 2. 使用scanf_s函数 在VS2019中,可以使用scanf_s函数代替scanf函数,这个函数是scanf函数的安全版本,可以避免一些安全问题。scanf_s函数的使用方法和scanf函数类似,只是需要在函数名后面加上一个“_s”。例如: ```c scanf_s("%d", &n); ``` 3. 使用其他输入函数 除了scanf函数和scanf_s函数,还有其他一些输入函数可以使用,例如gets、fgets等。这些函数也有各自的优缺点,你可以根据自己的需要选择合适的函数。 希望以上解决方法能够帮到你。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值