C语言高版本vs编译器scanf_s等报错原因方法

本文介绍了在使用C语言高版本VS编译器时遇到scanf_s等函数报错的问题及其解决方法。提供了两种解决方案:一是通过#pragma warning指令忽略不安全函数警告;二是修改项目属性禁用SDL检查。同时,解释了这些安全函数的由来和目的,旨在防止缓冲区溢出,但对初学者并非必需。
摘要由CSDN通过智能技术生成

C语言高版本vs编译器scanf_s等报错原因方法

很多高校初学C语言应该用的都是vs2010编译器,但是在结课作业时,很多人明显想用高版本编译器,因为联想等诸多功能是在是比较好用。但高版本编译器,诸如scanf要写为scanf_s、fopen要写fopen_s等等等等。对初学者来讲很不友好。
因此,这里我给出两种解决办法,并解释一下报错原因。
先是给出解决方法吧:
第一种:
#pragma warning(disable:4996)//忽略一些函数不安全报错,以达到编译器的要求
这一行代码的意思我已经写在注释里了,放在预处理那块即可(即#define那里)

第二种:
项目——最底下的属性——C/C++——SDL检查改为否——确认
这样即可,每个项目都要怎么改
在这里插入图片描述在这里插入图片描述最后,简单说一下这个的原因,首先这些加_s函数叫安全函数,来源都是微软,所以只有在vs系列编译器能见到
scanf()、gets()、fgets()、strcpy()、strcat() 等都是C语言自带的函数,它们都是标准函数,但是它们都有一个缺陷,就是不安全,可能会导致数组溢出或者缓冲区溢出。
scanf_s()、gets_s()、fgets_s()、strcpy_s(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值