Visual Stdio中使用strcpy()、scanf()等报错

不知道用Visual Stdio的小伙伴们有没有这种经历,明明有这个函数,但VS就是会报错 ,于是就开始疯狂找错。就拿之前我遇到的问题strcpy()函数来说,我这么写这个函数:

strcpy(m_p, p);  //m_p和p均为指向字符串的指针,将p中内容复制进m_p中

这么写没有问题对吧,然鹅在Visual Stdio中呢?欸,它报错了,为什么呢?因为它是有风险的,万一复制的内容超过了m_p的容量呢?它可不会好心到吃饱了就不吃了,多出来的部分会占用计算机中的其他内存,覆盖掉一些很重要的内容也是完全有可能的,所以贴心的Visual Stdio为了保护我们的电脑,将strcpy()视为错误给报出来了。那我实在要用怎么办?难道就没有办法用来吗?冷静,要知道之前还是允许的,要是完全被禁用了以前的程序岂不是不能跑了?所以我们可以用以下代码包含进我们的代码:

#pragma warning(disable:4996)   //C++的格式
#pragma warning disable 4996    //C#的格式

不清楚#pragma的小伙伴可以看我的上一篇博客比较靠后的部分:浅谈C语言预处理指令。 简单来讲#pragma就是一个修改属性的命令,这行代码的意思就是和编译器说:我就要strcpy()不可 ,你把警报给我关一关。disable后面的数字4996是错误代码(错误列表的标号,可以看到),简单来讲所有错误就是一个班级,这个编号就是你的学号,加入这行就将编译器对strcpy()函数的警报给关了。
另外,在用scanf()时也是会报错的,还会有个警报,别怕,只要你的程序没问题,函数用的没问题,定义的也没问题,对电脑而言是安全的,都可以加以下代码继续使用,有警告关警告,有错误管错误:

#pragma warning(diasble:xxxx)  //xxxx处填写对应的错误代码  C++版
#pragma warning disable xxxx    //xxxx处填写对应的错误代码  C#版

但是大家最好使用其他的函数来代替,因为既然报错了就会有一定的道理,可能是真的很危险,编译器也是为了你的电脑着想,实在想用,也请反复检查,确认自己写的是对的,并且对自己的电脑没有危险再这么改,切记。
其他语言还没有试过,但先写上,然后根据错误列表里的提醒自己修改修改格式就可以了
要是不这么干还有种法子比较麻烦,就是到属性里修改,在错误列表里找到一堆英文,然后找下划线大写单词交叉出现的那一段添加进属性,我觉得这么搞就很方便了,所以就不展开讲了,祝大家以后遇到这种错误后都会改

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值