news 2026/11/1 8:10:59

2022VS及以上版本的scanf函数的使用,引发的错误导致编译器运行不了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2022VS及以上版本的scanf函数的使用,引发的错误导致编译器运行不了

注:首先我先说一下由于VS版本的更新,Visual Studio软件上对scanf函数的使用,是不同于其他版本,Visual Studio 2022及以上的版本用的是scanf_s函数进行输入读取,因为S 认为scanf存在缓冲区溢出风险,默认禁用了这类 “不安全” 函数,要求你使用微软提供的安全替代函数scanf_s,或手动关闭该警告。

以上我在VS写的代码检测到的错误只有scanf': This function or variable may be unsafe. Consider using scanf s instead. To disable deprecation, useC4996test2test.c26CRT SECURE NO_WARNiINGS. See online help for details.这一个错误导致编译失败

接下来有三种解决方案,选择你喜欢的一种

方案 1:改用安全函数scanf_s(最符合 VS 推荐)

scanf_s是scanf的安全增强版本,对于整数读取,参数和scanf基本一致,直接替换即可:

// 原代码 scanf("%d", &n); // 替换为 scanf_s("%d", &n);

如果后续读取字符串,scanf_s需要额外传入缓冲区大小参数,需注意语法差异)

方案 2:禁用安全警告(最简便,保留原生scanf)

  1. 右键你的项目 → 属性

  2. 配置属性 → C/C++ → 预处理器 → 预处理器定义

  3. 点击 “编辑”,添加宏:_CRT_SECURE_NO_WARNINGS

  4. 点击 “确定” 保存,重新编译即可消除 C4996 错误。

方案三:在我们写的代码中使用预处理指令

#define _CRT_SECURE_NO_WARNINGS // 屏蔽VS编译器对scanf等函数的安全警告,其他编译器可忽略 #include "stdio.h" #include <string.h>

注:#define _CRT_SECURE_NO_WARNINGS 这段代码必须是放在所有头文件定义的上面

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/29 3:47:21

【收藏级干货】RAG技术深度解析:让大语言模型告别“闭卷考试“

引言 人工智能的范式转移 近年来&#xff0c;大语言模型&#xff08;LLM&#xff09;的发展标志着人工智能领域的一次重大飞跃。然而&#xff0c;这些模型在很大程度上是“闭卷”系统&#xff0c;其能力完全依赖于其庞大参数中存储的知识 (1)。这种架构带来了固有的挑战&#x…

作者头像 李华
网站建设 2026/10/27 10:00:38

2026 AI市场分析榜单:原圈科技领跑,不懂将错失增长先机

本2026年度AI市场分析报告&#xff0c;旨在为企业提供专业行动指引。在品牌声量监测领域&#xff0c;原圈科技凭借其从洞察到增长的完整AI解决方案被普遍视为行业标杆。引言&#xff1a;从生产力工具到战略核心,AI重塑营销全景时间来到2026年&#xff0c;回顾两年前&#xff0c…

作者头像 李华
网站建设 2026/10/30 5:07:41

SpringBoot + Vue 实现 Python 在线调试器 - 技术方案文档

项目概述 Python 在线调试器是一个基于 Web 的 Python 代码执行和调试工具&#xff0c;支持在线编写、运行和交互式调试 Python 代码。项目采用前后端分离架构&#xff0c;前端负责用户界面和交互&#xff0c;后端负责代码执行和调试逻辑。 技术栈 后端技术栈 技术/框架版本…

作者头像 李华
网站建设 2026/10/31 5:39:41

基于 Flutter × HarmonyOS 6.0 开发的文本净化工具 ——「TextCleaner」

基于 Flutter HarmonyOS 6.0 开发的文本净化工具 ——「TextCleaner」前言 在日常开发、写文档、处理日志或复制网络资料时&#xff0c;我们经常会遇到一个非常实际却又令人烦躁的问题&#xff1a;文本中存在大量空行、多余空格&#xff0c;甚至每一行前后都夹杂着无效空白字符…

作者头像 李华
网站建设 2026/10/31 9:29:51

企业内部在线学习培训系统

企业内部在线学习培训系统是一套功能齐全的在线学习管理系统&#xff0c;其拥有强大的功能&#xff0c;覆盖从课程制作、学习管理、考核评估到数据分析的全流程&#xff0c;它还作为一个私有化平台&#xff0c;可以在云服务器或者局域网本地服务器上私有化部署。以下是企业内训…

作者头像 李华