_CRT_SECURE_NO_WARNINGS错误提示,解决办法

本文介绍了使用高版本Visual Studio编译C程序时遇到的警告问题,特别是关于使用scanf函数的安全性提示。文中提供了两种解决方法:一是通过预编译宏定义来禁用安全性检查;二是更改工程设置来实现相同的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>

int main(void)
{
    char str[256] = {0};
    scanf("%255s",str);
    printf("Hello World!\n");
    printf("%s\n",str);
    return 0;
}

一个简单的C的Hello World,如果用高版本的VS来编译,会提示

'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默认不让使用scanf,fopen等函数,说是scanf,fopen等函数不安全,而代替其函数的是scanf_s,fopen_s等函数,后边有个"_s"的形式
想要使用,可以在源文件开头加个:

#define _CRT_SECURE_NO_WARNINGS

右击工程 - 属性 - 配置属性 - C/C++  - 命令行
命令行增加:/D_CRT_SECURE_NO_WARNINGS

效果都一样,就是预编时处理一下,加个宏而已,让其忽略安全检测

#define _CRT_SECURE_NO_WARNINGS
//添加到头行,添加到stdio.h等头文件后还是会出警告的
#include <stdio.h>

int main(void)
{
    char str[256] = {0};
    scanf("%255s",str);
    printf("Hello World!\n");
    printf("%s\n",str);
    return 0;
}

 

 

 

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值