伙伴云客服论坛»论坛 S区 S软件开发 查看内容

0 评论

0 收藏

分享

VS中scanf为何会报错详解

目录

    发现问题 处置办法总结


发现问题

简单来讲,scanf会强行输入内容,所以是不安全的。
我们来看这样的例子:
  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.         char demo[3];
  6.         scanf("%s", demo);
  7.         return 0;
  8. }
复制代码
对于以上代码,当我们输入字符不超越3时,程序可以正常运行,但当我们输入字符大于3,scanf仍将所有输入字符存入数组,这显然会导致数组的错误访问,因而VS认为scanf是不安全的。

处置办法

第一,我们可以使用scanf_s,它是VS提供的,但若使用它将意味着程序只能在VS编译器运行,显然是不合理的。
第二种方法是在程序开头加上”#define _CRT_SECURE_NO_WARNINGS 1“
VS中scanf为何会报错详解-1.png

但是假设我们每次翻开都需要输入的话是比较费事的。因而,我们可以搜索new++file.cpp文件将该句子加到文件当中,以后在创建新的程序时VS就会自动在开头加上。
途径参考:D:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\VCProjectItems
找到文件后使用记事本翻开并输入”#define _CRT_SECURE_NO_WARNINGS 1“即可,如图。
VS中scanf为何会报错详解-2.png


总结

到此这篇关于VS中scanf为何会报错的文章就介绍到这了,更多相关VS中scanf报错内容请搜索网站以前的文章或继续阅读下面的相关文章希望大家以后多多支持网站!

回复

举报 使用道具

全部回复
暂无回帖,快来参与回复吧
本版积分规则 高级模式
B Color Image Link Quote Code Smilies

杜冷丁
注册会员
主题 26
回复 19
粉丝 0
|网站地图
快速回复 返回顶部 返回列表