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.最后点击应用即可。

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

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

相关文章
|
7月前
|
数据安全/隐私保护
【VBScript】vbs 错误未结束的错误字符串常量
【VBScript】vbs 错误未结束的错误字符串常量
86 0
|
6月前
|
Windows
qt中编译错误:error: C2001: 常量中有换行符的解决办法
qt中编译错误:error: C2001: 常量中有换行符的解决办法
|
7月前
|
编译器 C++
VS编译器对scanf函数不安全报错的解决办法(详细步骤)
VS编译器对scanf函数不安全报错的解决办法(详细步骤)
|
7月前
|
编译器 C语言 C++
编译器报错:qsort函数对-2147483648、2147483648溢出报错
编译器报错:qsort函数对-2147483648、2147483648溢出报错
81 0
|
微服务
报错找不到符号
报错找不到符号
87 0
报错找不到符号
QT编译警告 warning LNK4042: 对象被多次指定;已忽略多余的指定
QT编译警告 warning LNK4042: 对象被多次指定;已忽略多余的指定
294 0
|
芯片 C++
【MDK(keil)编译错误】找不到main.o及解决方法、多处报错“未定义”
【MDK(keil)编译错误】找不到main.o及解决方法、多处报错“未定义”
1226 0
【MDK(keil)编译错误】找不到main.o及解决方法、多处报错“未定义”
|
编译器 C++
完美解决vs编译器scanf报错问题
完美解决vs编译器scanf报错问题
281 0
完美解决vs编译器scanf报错问题
error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用
error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用
153 0
error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用
解决办法一:GetProcAddress函数返回值总为NULL
解决办法一:GetProcAddress函数返回值总为NULL
245 0