C | 关于VS编译器的scanf、字符操作函数报错不安全

举报
CGod 发表于 2022/10/14 16:28:44 2022/10/14
【摘要】 【摘要】许多使用VS编译器的铁汁都会遇到这类报错,使用scanf、strcat、strerror等,都会报错认为它们不安全,让我们看看如何处理叭~

在这里插入图片描述
啊我摔倒了..有没有人扶我起来学习....


你好,我是CGod,每个人都可以5分钟编程。
欢迎来到我的主页:《CGod的后花园》


前言

许多使用VS编译器的铁汁都会遇到这类报错,使用scanfstrcatstrerror等,都会报错认为它们不安全,让我们看看如何处理叭~


一、报错描述

  • 这边拿scanf举例子
	int n;
	scanf("%d",&n);

在这里插入图片描述

二、解决方案

1. 用scanf_s代替scanf

  • 提示scanf不安全,可以选择用scanf_s。确实可以解决问题,但是博主这边不建议使用scanf_s,因为这个函数只有VS编译器认识,没有良好的可移植性

2. 使用_CRT_SECURE_NO_WARNINGS

  • 一定要记住,必须将这段代码放在整个源文件的==首行==
#define _CRT_SECURE_NO_WARNINGS 1

三、一劳永逸

  • 本来该问题已经算解决了,但是博主心疼铁汁们的手,每次创建源文件都要输入一次#define _CRT_SECURE_NO_WARNINGS 1岂不是太麻烦啦,于是博主来教教大家如何一劳永逸~
  1. 咱们需要找到VS的一个文件(newc++file.cpp
  2. 这边博主推荐下载一个小东西(Everything——本地电脑的搜索软件)
    在这里插入图片描述
  3. Everything快速搜索出newc++file.cpp的所在
    在这里插入图片描述
  4. 用记事本打开newc++file.cpp,把
    #define _CRT_SECURE_NO_WARNINGS 1拷贝进去保存
    在这里插入图片描述
  5. 以后每次创建新的源文件,首行就会自动存在
    #define _CRT_SECURE_NO_WARNINGS 1
    在这里插入图片描述

关于第4点,可能有些铁汁会遇到没有权限打开newc++file.cpp的问题,这时咱就把newc++file.cpp==复制粘贴==到桌面上打开修改,修改完再拖进原文件位置进行替换,记住,一定是复制粘贴出来,不要拖出来,拖出来原路径就没有该文件了

在这里插入图片描述
在这里插入图片描述


在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。