【C语言】手把手教你配置VS的常见函数如何不报错!

  🌈write in front :

🔍个人主页 : @啊森要自信的主页

✏️真正相信奇迹的家伙,本身和奇迹一样了不起啊!

欢迎大家关注🔍点赞👍收藏⭐️留言📝>希望看完我的文章对你有小小的帮助,如有错误,可以指出,让我们一起探讨学习交流,一起加油鸭。 请添加图片描述

📝前言

一些常用函数,在Visual Studio中默认会进行参数检查,使用#define _CRT_SECURE_NO_WARNINGS 1可以禁止警告:

函数错误警告
scanf系列函数(scanfsscanf等)检查格式字符串和参数匹配性
strcpystrcat检查目标字符串缓冲区大小
gets检查目标缓冲区大小
sprintfsprintf_s检查格式字符串和目标缓冲区大小
strtok检查目标字符串缓冲区
strncpy检查源和目标字符串大小
wcscpywcsncpy宽字符版本的strcpystrncpy
_getch_getwch检查缓冲区大小
fopenfreopen检查文件路径有效性
atoiatoi64strtolstrtoul等转换函数检查参数格式
randsrandWindows版本的randsrand使用这个定义
内存操作函数如memmovememcpymemset检查参数大小
文件操作函数如fopenfreadfwrite检查文件句柄和缓冲区
时间函数如ctimelocaltimeWindows版本使用这个定义
总结一般涉及到字符串操作格式化输入输出内存操作和文件操作的函数,都可能需要使用这个定义来禁止参数检查产生的警告。

问题描述

关于scanf 函数被VS报告‘scanf’:这个函数或变量可能不安全。考虑使用scanf_s替代。要禁用警告信息,请使用 _CRT_SECURE_NO_WARNINGS

请添加图片描述

原因分析:

:原因是scanf函数是因为容易发生缓冲区溢出,就好比定义数组,进行多组输入,有可能会出现数组越界,为了提高代码的安全性,VS编译器会对scanf函数进行检测,并给出警告或错误。),而scanf_s函数是VS编译器提供的一种代替scanf的函数,scanf_s函数在读取字符串时会指定最大长度,从而避免缓冲区溢出问题,但是scanf_s不是C语言函数,可移植性小,建议使用C语言的scanf函数。


解决方案:

提示:这里填写该问题的具体解决方案:
一 .在第一行加上一句 # define _CRT_SECURE_NO_WARNINGS 1

请添加图片描述

二 .但是每次创建一个项目都要加在文件前面打一遍,会不会太麻烦了呢?下面有一种好方法,可以通过以下步骤完成:

1.下载一个小工具everything
点击https://www.voidtools.com/zh-cn/downloads/下载everything(“Everything” 是 Windows 上文件名搜索引擎。)可以更方便快捷搜索文件。默认安装即可。
2.下载安装好后,打开everything,在搜索框中输入newc++file.cpp 然后按下回车键请添加图片描述
搜索可以看到该文件。
3.接下来我们只需找newc++file.cpp的路径,不需要找有多余的后缀,例如:上图的newc++file.cpp.lnk ;因此我们只需按照newc++file.cpp后面的路径打开文件夹请添加图片描述
4.然后右击鼠标,用记事本打开,打把这句话粘贴进去,

  # define _CRT_SECURE_NO_WARNINGS 1

请添加图片描述
请添加图片描述
点击文件保存,保存路径要和原来路径一样,目的是为了把原来的newc++file.cpp文件替换掉
请添加图片描述
请添加图片描述
此时替换后显示下图,说明没有替换成功
请添加图片描述
这个时候不用慌,你先点击确定,然后把newc++file.cpp 文件脱出桌面,再重新这句代码复制

  # define _CRT_SECURE_NO_WARNINGS 1

粘贴进去,点击文件保存,然后把它拖进去替换,点击继续,接下来就可以替换掉了;

请添加图片描述
请添加图片描述
这个时候只要在VS里创建一个项目就可以自动添加

# define _CRT_SECURE_NO_WARNINGS 1

以后就不用再手动输入啦!

*(记得替换成功后桌面的**newc++file.cpp** 文件就可以删掉了)        

然后我们再添加一个文件,测试一下
请添加图片描述请添加图片描述

🚩总结

这次阿森和你一起学习,但阿森会慢慢和你一起学习VS的常见函数如何不报错!怎么配置# define _CRT_SECURE_NO_WARNINGS 1。感谢你的收看,如果文章有错误,可以指出,我不胜感激,让我们一起学习交流,如果文章可以给你一个小小帮助,可以给博主点一个小小的赞😘

请添加图片描述

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿森要自信

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值