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

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

总结

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

在这里插入图片描述

最近更新

  1. TCP协议是安全的吗?

    2024-02-07 08:34:01       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-07 08:34:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-07 08:34:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-07 08:34:01       18 阅读

热门阅读

  1. 【C/C++】基本数据类型—数组、指针和引用

    2024-02-07 08:34:01       23 阅读
  2. Flask实现异步调用sqlalchemy的模型类

    2024-02-07 08:34:01       28 阅读
  3. 正则表达式 regex

    2024-02-07 08:34:01       36 阅读
  4. jvm一级缓存

    2024-02-07 08:34:01       30 阅读
  5. kyuubi 接入starrocks | doris

    2024-02-07 08:34:01       31 阅读
  6. VLM 系列——LLaVA-MoLE——论文解读

    2024-02-07 08:34:01       29 阅读
  7. ef core原始sql查询

    2024-02-07 08:34:01       28 阅读
  8. dynamic_cast运行阶段类型识别

    2024-02-07 08:34:01       33 阅读
  9. 详细了解Node.js的配置与使用!

    2024-02-07 08:34:01       27 阅读