VS编译器警告scanf未定义的三种解决办法

简介: 我们开始学习编程时候上手第一门语言通常是C语言,我们还需要下载一个编译器,最常见的莫过于Microsoft公司开发的Visual Studio(下面都简称VS)系列编译器,但是VS中我们使用scanf等函数时语句总是报错,显示不安全。

VS编译器警告scanf未定义的三种解决办法

我们开始学习编程时候上手第一门语言通常是C语言,我们还需要下载一个编译器,最常见的莫过于Microsoft公司开发的Visual Studio(下面都简称VS)系列编译器,但是VS中我们使用scanf等函数时语句总是报错,显示不安全。

第一种解决方案

那么我们就来学习一下如何来解决这个问题,很明显错误提示中已经给出了第一种解决方法,
1.直接将scanf用scanf_来替换 直接将scanf替换成scanf_s,但是非常不推荐大家这么做,为什么呢,因为其实标准定义中并没有scanf_s这个函数,这是VS编译器给出的一个所谓安全的函数,当然这样的代码也只能在VS编译器环境中来使用,那么这样的代码就给用户等造成了极大的不便,并且大大降低了代码的可移植性。那么我们还有什么办法呢?

第二种解决方案

在文件第一行加上声明,让它不要警告。什么意思呢,我来做一个演示

image-20221122145026102

在我的代码第一行是有一行声明的,这行代码的意思就是告诉编译器不要警告我们,这行代码放到这里,大家自行复制:

#define _CRT_SECURE_NO_WARNINGS 1

那么我们又有一个问题随之而来,每次我都要在第一行加上这样的一行未免有些过于麻烦了,那么我们应该怎么办呢,下面我们来介绍一个一劳永逸的办法:

一、 第一步我们需要下载一个everything,这是一个具有强大检索功能APP,占用非常小,不用担心,链接放在这里[everything下载地址

](https://www.voidtools.com/zh-cn/),大家进去只有下载精简版安装版本即可。
二、

在这里插入图片描述

我们打开这个软件搜索到这个文件,然后右键打开文件路径找到这个文件的位置


在这里插入图片描述

我们需要右键用记事本打开将我们声明的代码放到里面点击保存,但是电脑一定会提醒你没有修改权限,这时候不要着急,有一个最简单的办法,把这个文件拷贝到桌面上一份,把桌面那个文件用记事本打开将代码放进去如下:

在这里插入图片描述

然后将桌面上这一份再放回原来的路径底下,电脑提示你要替换文件吗,点击替换即可。

image-20221122145228000

这样我们就彻底完成了,当你去VS里面新建一个文件的时候就会发现第一行默认就有我们的声明的,这样就一劳永逸的解决了VS警告函数不安全的问题。

第三种解决方案

第三种解决方案是关闭SDL检查,具体操作步骤如下:

1.鼠标右击打开项目属性

image-20221122145329477

2.将SDL检查关闭即可

image-20221122145521717

3.最后点击应用即可。

综合以上三种方案,最推荐的当然是第二种一劳永逸的方法喽!

如果有帮助的话,请点点赞哦!!

相关文章
|
3天前
|
编译器 C++
VS编译器对scanf函数不安全报错的解决办法(详细步骤)
VS编译器对scanf函数不安全报错的解决办法(详细步骤)
Qt 之未定义标识符“qFlagLocation“解决办法
Qt 之未定义标识符“qFlagLocation“解决办法
|
芯片 C++
【MDK(keil)编译错误】找不到main.o及解决方法、多处报错“未定义”
【MDK(keil)编译错误】找不到main.o及解决方法、多处报错“未定义”
729 0
【MDK(keil)编译错误】找不到main.o及解决方法、多处报错“未定义”
|
编译器 C++
完美解决vs编译器scanf报错问题
完美解决vs编译器scanf报错问题
219 0
完美解决vs编译器scanf报错问题
|
C++
VS编译错误:error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
VS编译错误:error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
258 0
|
Linux Windows
编译OpenJDK8-u302出错:error C3861: “INT64_C”: 找不到标识符
编译OpenJDK8-u302出错:error C3861: “INT64_C”: 找不到标识符
99 0
解决办法:C代码中明明有,为什么编译时提示未定义的引用
解决办法:C代码中明明有,为什么编译时提示未定义的引用
236 0
解决办法:对uncompress未定义的引用
解决办法:对uncompress未定义的引用
151 0
|
编译器
vc++ 设置64位编译器
vc++ 设置64位编译器
166 0
C++编译提示宏重定义了,怎么办?
C++编译提示宏重定义了,怎么办?
866 0