Visual Studio 2019 解决scanf函数报错问题

简介: Visual Studio 2019 解决scanf函数报错问题系列文章第一篇:Visual Studio 2019 详细安装教程(图文版)第二篇:Visual Studio 2019 实用功能设置(背景颜色,代码颜色及行号设置)第三篇:Visual Studio 2019 代码调试技巧第四篇:Visual Studio 2019 解决scanf 警告问题

前言

Visual Studio 2019 解决scanf函数报错问题

关注博主,后期持续更新系列文章

*****感谢观看,希望对你有所帮助*****


系列文章

第一篇:Visual Studio 2019 详细安装教程(图文版)

第二篇:Visual Studio 2019 实用功能设置(背景颜色,代码颜色及行号设置)

第三篇:Visual Studio 2019 代码调试技巧

第四篇:Visual Studio 2019 解决scanf 警告问题


文章目录

前言

系列文章

一、问题由来

二、为何会存在这个问题

三、解决方法

方法1(scanf_s)不推荐

方法2(#define _CRT_SECURE_NO_WARNINGS 1)推荐

总结


一、问题由来

在 Visual Studio 2019 编辑代码时,前期刚刚接触到VS编译器时存在的困惑,当用scanf()函数,进行输入时,在运行的时候编译器会出现警告报错。如下图情况

image.png


二、为何会存在这个问题

在Visual Studio 2019中,scanf函数会被标记为不安全的函数,因为它没有检查输入缓冲区的大小。如果输入缓冲区不够大,scanf函数可能会导致缓冲区溢出,从而引发安全漏洞。


三、解决方法


方法1(scanf_s)不推荐

为了避免这个问题, VS编译器中可以使用scanf_s函数代替scanf。scanf_s函数具有相同的参数和行为,但添加了一个额外的参数,用于指定输入缓冲区的大小。例如,要读取一个整数,您可以这样使用scanf_s函数:

intnum;
if (scanf_s("%d", &num) !=1) {
// scanf_s失败,处理错误}

注意:如果您还想使用scanf函数而不是scanf_s函数,请在项目的属性中启用“CrtSecureWarnings”选项,该选项将禁用scanf函数的警告


方法2(#define _CRT_SECURE_NO_WARNINGS 1)推荐

在文件的最顶端输入以下代码

#define  _CRT_SECURE_NO_WARNINGS 1

注意一定得是文件最开头的地方 !!!

image.png

因为在编程时常常会使用到scanf函数,为了解决每次编程时都需要在开头写这条会很繁琐


以下是解决方法

在新建.c文件时自带#define _CRT_SECURE_NO_WARNINGS 1

1.先下载这个软件 旁边是 Everything官网地址

image.png

2.运行Everything,在搜索框里查找这个文件newc++file.cpp

image.png

3.右击打开路径

image.png

4.复制该文件到桌面,用vs2019打开进行修改

image.png

5.将这段代码#define _CRT_SECURE_NO_WARNINGS 1复制到文件中

image.png

6.将这个文件保存到步骤4.的路径中,替换本来的文件

image.png

7.这样就在新建文件时,就有这行代码啦

image.png


总结

在学习C语言的初期,经常遇到scanf函数报错问题,建议使用方法2,方法1的scanf_s是在VS编译器中有,使用时如果在其他编译器运行时可能会出错,所以建议使用方法2,#define _CRT_SECURE_NO_WARNINGS 1


如这篇博客对大家有帮助的话,希望 三连 支持一下 !!! 如果有错误感谢大佬的斧正 如有 其他见解发到评论区,一起学习 一起进步。

目录
相关文章
|
11月前
|
编译器 C语言
【C语言航路外传】一招解决visual studio部分函数不安全问题
【C语言航路外传】一招解决visual studio部分函数不安全问题
81 0
|
网络协议 编译器 C语言
Visual Studio 2022 中解决使用scanf报错的方法(一劳永逸)
宝子们好呀!在上一篇文章中教大家任何安装完成Visual Studio 2022,还没有安装的朋友们可以到这里来看一下呀:Visual Studio 2022下载安装教程 安装完成后,很多新手小白在使用Visual Studio 2022编译器的过程中使用到scanf后会出现报错的情况,也不知道如果改正,所以今天我就来给大家分享解决这个问题的办法。
467 0
|
2月前
|
JavaScript C++
【C++ visual studio】解决VS报错:error C2447: “{”: 缺少函数标题(是否是老式的形式表?)【亲测有效,无效捶我】
【C++ visual studio】解决VS报错:error C2447: “{”: 缺少函数标题(是否是老式的形式表?)【亲测有效,无效捶我】
112 0
|
5月前
|
编译器 C语言 C++
visual studio的安装及scanf报错的解决
visual studio的安装及scanf报错的解决
657 0
|
11月前
|
编译器 C语言 C++
visual studio的安装及scanf报错的解决
visual studio的安装及scanf报错的解决
146 0
|
安全 编译器 C语言
Visual Studio 2022 中使用scanf报错的解决方法(一次性解决)
Visual Studio 2022 中使用scanf报错的解决方法(一次性解决)
829 0
|
5月前
Visual Studio 2022 中VLD库如何安装
Visual Studio 2022 中VLD库如何安装
726 1
|
5月前
Visual Studio 2022 中VLD库如何安装
Visual Studio 2022 中VLD库如何安装
694 0
|
4月前
|
IDE 开发工具 C语言
Visual Studio 2017 安装及使用(新手)
Visual Studio 2017 安装及使用(新手)
985 0
|
3月前
|
弹性计算 自然语言处理 Windows
通义灵码 Visual Studio 下载安装指南(附安装包)
本安装步骤适用于 Windows 10 及以上操作系统中安装和使用通义灵码。
131435 20