VS编译器中库函数scanf报错问题及处理办法

文章讲述了在使用VisualStudio(VS)编译C语言程序时,由于高版本编译器认为scanf等函数不安全而产生警告的问题。解决方案包括将scanf替换为scanf_s(不跨平台)或在代码中添加#define_CRT_SECURE_NO_WARNINGS来禁用警告。作者还提供了如何一劳永逸地在VS设置中解决此问题的方法。
摘要由CSDN通过智能技术生成

以下面代码为例:

#include<stdio.h>
int main()
{
    int a = 0, b = 0, sum = 0;
    scanf("%d%d", &a, &b);
    sum = a + b;
    printf("%d\n", sum);
    return 0;
}

调试报错:

        'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. 

报错原因:

        scanf是c语言提供的,高版本的VS编译器不认可,调试会显示scanf函数不安全从而报错

//类似的VS编译器中显示不安全的函数还有:strcpy、strlen、strcat.....

解决办法:

        (1)、scanf改成scanf_s(不推荐)

        scanf_s是VS编译器提供的,但是不具有跨平台性,即不具有通用性,在其他编译器中有可能不能被识别。

       (2)、在第一行添加“#define _CRT_SECURE_NO_WARNINGS”(最佳选择

        添加#define _CRT_SECURE_NO_WARNINGS之后的代码:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    int a = 0, b = 0, sum = 0;
    scanf("%d%d", &a, &b);
    sum = a + b;
    printf("%d\n", sum);
    return 0;
}

        调试结果:

        添加#define _CRT_SECURE_NO_WARNINGS的一劳永逸的办法:

//D:\visual studio\Common7\IDE\VC\vcprojectitems\newc++file.cpp(我自己的,每个人的安装路径不同)

//以记事本方式打开newc++file.cpp文件,打开之后里边是空白,在里边复制粘贴#define _CRT_SECURE_NO_WARNINGS,然后ctrl+s保存即可

//如果出现无法保存,通过下载安装“Notepad++”,以Notepad++打开newc++file.cpp文件,添加#define _CRT_SECURE_NO_WARNINGS进行保存即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值