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

VS编译器对scanf函数不安全报错的解决办法(详细步骤)

C语言

📚博客主页:爱敲代码的小杨.

✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》

❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️

🙏小杨水平有限,欢迎各位大佬指点,相互学习进步!


文章目录

  • 前言
  • 解决方法
    • 方法一:
    • 方法二:
    • 方法三:
  • 总结

前言

为什么同一份代码在Dev-c++编译器中能正常运行,而在VS中则报错呢?

image-20240205215018394

原因:scanf此函数或变量可能不安全,要禁用弃用,所以上诉代码在VS中会报错

image-20240205215941253

解决方法

方法一:

scanf替换为scanf_s (不推荐)

image-20240205222131571

scanf_s这个函数仅仅是VS这个编译器提供的,如果把代码放到其他编译器可能会编译不过,这个时候会出现一些跨平台的问题。

方法二:

定义预定义符号_CRT_SECURE_NO_WARNINGS

在代码第一行输出:

#define _CRT_SECURE_NO_WARNINGS

image-20240205221648079

一劳永逸的方法

可以让每一次新建的源文件中就包含这句代码:

方法:在VS的安装路径下搜索:newc++file.cpp这个文件

image-20240205222416188

在文件中加上:

#define _CRT_SECURE_NO_WARNINGS

以后创建的的新的.c或者.cpp文件中都会自动有这句代码。

PS:如果觉得系统的搜索太慢的,可以下载Everything这个软件

方法三:

设置项目属性的预处理

打开工程的【解决方法资源管理器】->【属性】

image-20240205222716011

在属性页中:

【属性配置】->【C/C++ ->预处理器】->【预处理定义】中增加:

_CRT_SECURE_NO_WARNINGS,每个符号都用分号隔开的

然后应用就可以了。

image-20240205223122266

这种方法,每次项目都要设置,比较麻烦。

总结

个人推荐使用方法二,一劳永逸。

在这里插入图片描述

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

相关文章:

  • vscode连接ssh报错
  • C++ 哈希+unordered_map+unordered_set+位图+布隆过滤器(深度剖析)
  • 深入理解Netty及核心组件使用—下
  • vscode 突然连接不上服务器了(2024年版本 自动更新从1.85-1.86)
  • element-ui link 组件源码分享
  • 序列化和反序列化、pytest-DDT数据驱动
  • Spring Boot整合MyBatis Plus实现基本CRUD与高级功能
  • CSS 闪电按钮效果
  • 【Go-Zero】Error: only one service expected goctl一键转换生成rpc服务错误解决方案
  • 从头开始构建和训练 Transformer(上)
  • JVM-JVM内存结构(一)
  • React Emotion 如何优雅的使用样式(一)
  • 1+X运维试题样卷A卷(初级)
  • QT QDialog 中的按钮,如何按下后触发 accepted 消息?
  • seata分布式事务
  • Python HttpServer 之 简单快速搭建本地服务器,并且使用 requests 测试访问下载服务器文件
  • 【Python 实战】---- 实现批量给 pdf 插入 excel 动态生成的印章
  • 51单片机实验课二
  • 1-4 动手学深度学习v2-线性回归的简洁实现-笔记
  • SQL如何实现数据表行转列、列转行?
  • 【React】redux状态管理、react-redux状态管理高级封装模块化
  • HAProxy 和负载均衡概念简介
  • 【go】ent操作之CRUD与联表查询
  • 服务器性能监控管理方法及工具
  • AUTOSAR汽车电子嵌入式编程精讲300篇-基于FPGA和CAN协议2.0B的总线控制器研究与设计
  • 14.1 Ajax与JSON应用(❤❤)
  • ffmpeg命令生成器
  • JavaScript基础速成
  • openGauss学习笔记-215 openGauss性能调优-确定性能调优范围-性能日志
  • 在vs code的terminal,debug执行python main.py --train True