杜冷丁
楼主
发布于 2023-4-19 13:49:45
阅读 877
查看全部
目录
发现问题
简单来讲,scanf会强行输入内容,所以是不安全的。
我们来看这样的例子:- #include <iostream>
- using namespace std;
- int main()
- {
- char demo[3];
- scanf("%s", demo);
- return 0;
- }
复制代码 对于以上代码,当我们输入字符不超越3时,程序可以正常运行,但当我们输入字符大于3,scanf仍将所有输入字符存入数组,这显然会导致数组的错误访问,因而VS认为scanf是不安全的。
处置办法
第一,我们可以使用scanf_s,它是VS提供的,但若使用它将意味着程序只能在VS编译器运行,显然是不合理的。
第二种方法是在程序开头加上”#define _CRT_SECURE_NO_WARNINGS 1“
但是假设我们每次翻开都需要输入的话是比较费事的。因而,我们可以搜索new++file.cpp文件将该句子加到文件当中,以后在创建新的程序时VS就会自动在开头加上。
途径参考:D:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\VCProjectItems
找到文件后使用记事本翻开并输入”#define _CRT_SECURE_NO_WARNINGS 1“即可,如图。
总结
到此这篇关于VS中scanf为何会报错的文章就介绍到这了,更多相关VS中scanf报错内容请搜索网站以前的文章或继续阅读下面的相关文章希望大家以后多多支持网站! |
|