一.为什么visual studio用scanf_s而不是scanf作为输入函数
其主要原因是scanf存在越界访问内存问题
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { char ch[5]; scanf("%s", ch); //输入abcd printf("%s\n", ch); //正常输出abcd scanf("%s", ch); //输入abcdefg printf("%s\n", ch); //此时已经报错,报错原因是输入时超过原数组的大小导致数组越界 //访问到不属于该数组的范围 }
二、如何解决该问题
1.将scanf 修改成 scanf_s,使用visual code编译器提供的函数,可解决该问题
2.采用宏定义
方法一
#define _CRT_SECURE_NO_WARNINGS 1
必须注意,这段代码必须添加到第一行
但是下次还需要在新建源码中继续添加该字段
方法二
下面介绍一种彻底解决该方法的方式
最终目的是修改:
如果读者能找到,直接省略前几步
😀百度搜索Everything官网
😀下载该软件并对其进行安装
😀打开软件直接搜索newc++file.cpp
😀我们将其复制到桌面再对其进行操作
😀用记事本将其打开
😀将#define _CRT_SECURE_NO_WARNINGS 1输入到其中
😀将该文件保存后,再复制回原目录下
😀替换原有文件