当前位置: 首页 > news >正文

VS中scanf为什么会报错

简单来讲,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“即可,如图。
请添加图片描述

http://www.lryc.cn/news/8630.html

相关文章:

  • 使用kubeadm部署k8s1.24.0版本,遇到的坑总结
  • 【C++】特殊类设计
  • 中创教育PMP如何轻松应对公司90%以上的沟通难题
  • #笨鸟先飞# 数据结构与算法基础 课程笔记 第六章 图
  • 深入浅出带你学习Apache中间件常见漏洞
  • 用多种指针方法访问数据元素,实现逆序输出
  • WebDAV之葫芦儿·派盘+NMM
  • Redis多级缓存
  • 【原创】java+swing+mysql会议室管理系统设计与实现
  • 【Redis】Redis 常用数据类型操作 ① ( 数据库操作 | Redis 数据库连接参数 | Redis 数据库个数 | Redis 访问机制 )
  • GAMES101-计算机图形学入门 LEC4: TRANSFORMATION-3D
  • robot实战:截取字符串
  • 【面经】滴滴测开一面
  • 数据治理-主数据
  • 软考-中级-软件设计师-成绩
  • 学习笔记<二> MySQL学习(3):分库、分表
  • 重生之我是赏金猎人-SRC漏洞挖掘(八)-记一次移花接木的GetShell
  • 离线数仓(五):数仓搭建
  • 安装SQL Server2017 过程中报KB29119355失败的解决方案
  • 2023年浙江建筑特种工(施工升降机)真题题库及答案
  • 2023年进入互联网行业好找工作吗?
  • 基于策略模式企业实战中策略命中设计
  • pod生命周期,pod控制器service
  • SAP FICO 深入讲解会计凭证
  • LeetCode 2341. 数组能形成多少数对
  • PHPStorm常用快捷键
  • 【基于腾讯云的远程机械臂小车】
  • 兼职任务平台收集(一)分享给有需要的朋友们
  • MarkDown中公式的编辑
  • 解决jupyter以及windows系统中pycharm编译器画图的中文乱码问题大全