VS2019:scanf返回值被忽略
一、问题再现
如下是笔者在学习数据结构中的二叉树时遇到的问题:
报错警告:返回值被忽略:"scanf"。
二、问题分析
百度一下之后大致原因是:scanf()函数在读取时不检查边界,所以可能会造成内存泄漏。有一定的安全隐患。例如代码是
char a;
scanf("%c",&a);
scanf只有一个%c,当你输入两个以上的字符时,就会发生内存溢出。
微软公司觉得其不安全,所以在VS编译器中提供了scanf_s()函数,这是VS编译器特有的函数。强制用户提升安全性,如果想要在VS中使用scanf()函数,则可以通过以下四种方法解决。
三、解决方案
1、把scanf改成:scanf_s
把所有的scanf()改写成scanf_s(),但是scanf_s()是VS编译器特有的函数,写了此函数之后在别的编译器上就无法执行,使得代码的可移植性和跨平台性变得极差,不推荐使用。
2、关闭VS的SDL安全检查
点击应用确定之后,程序正常运行
3、在程序开头添加命令
在程序开头添加
#pragma warning(disable:4996)
或者
#pragma warning(once:4996)
可以看到,程序已经可以正确运行,即使警告提示还有。
4、添加宏定义
在项目文件开头添加宏定义,来忽略安全检查
#define _CRT_SECURE_NO_WARNINGS
或者
在预处理中编辑宏,相当于每次执行程序时,编译器自动帮你执行,省去了自己要在文件开头定义宏的麻烦
又或者
在VS2019安装路径找到 "newc++file.cpp" 这个文件,右键记事本打开,输入上面的
#define _CRT_SECURE_NO_WARNINGS
命令,保存,这样以后每次新建.c++源文件的时候这行代码就会自动出现在第一行。
【注意】如果在保存的时候出现“拒绝访问”的情况,可以测试下载安装一个工具“Notepad++”,然后以管理员的身份运行这个软件,用这个软件打开上面提到的“newc++file.cpp”文件,复制粘贴代码上去后,保存即可。
VS2019:scanf返回值被忽略相关推荐
- scanf返回值被忽略的原因及其解决方法(vs2019)
在使用Visual Studio 2019编写C语言程序时相信大家都遇见了scanf返回值被忽略这个问题 存在的问题就是scanf函数输入不安全,其实在vs编译器环境下,这种不安全的函数有很多. 为了 ...
- c语言scanf返回值被忽略,scanf返回值问题
在家养病,闲着没事看C primer plus,看到书中对于scanf输入的判断,常用如下方法: 此时它将返回1视为我输入成功,如果不为1则视为输入失败.那到底scanf的返回值具体指的是什么呢? 例 ...
- scanf返回值被忽略的原因及其解决方法
昨天在使用Visual Studio 2019编写C语言程序时遇到了scanf返回值被忽略问题 因为我也是刚开始使用VS2019学习C语言,第一次遇到这种问题,也不知道怎么回事,然后就上Chrome研 ...
- 关于vs2022 C6031 “scanf返回值被忽略”的解决办法
关于vs2022 C6031 "scanf返回值被忽略"的解决办法 我遇到的问题: 在学习c语言的过程中,和教学视频完全一样的代码,但是却在我的编译器里有这样一条警告: 解决办法: ...
- VsStudio中scanf返回值被忽略的原因及其解决方法
相信有不少人在使用vs的时候会遇到以下这个问题:scanf返回值被忽略,接下来我就告诉大家该如何解决这个问题 出现问题的原因: 因为scanf()在读取数据时不检查边界,所以可能会造成内存泄漏.M ...
- scanf返回值被忽略问题
解决Visual Studio中scanf返回值被忽略问题 最近在使用Visual Studio编写c语言时遇到了scanf返回值被忽略问题 总结了如下几种解决方法: 方法一(不建议) scanf修改 ...
- 解决Visual Studio中scanf返回值被忽略问题
最近在使用Visual Studio编写c语言时遇到了scanf返回值被忽略问题,下面总结了几种解决方法: 总结了如下几种解决方法: 方法一 scanf修改成 scanf_s 可以说scanf_s是v ...
- scanf返回值被忽略如何解决?
问题图: 解决办法: 在第一行写入:#define _CRT_SECURE_NO_WARNINGS1即可 具体产生的原因和多种解决办法可以推荐一个非常详细的博主,链接如下:(3条消息) scanf返回 ...
- VS2022 scanf返回值被忽略怎么办
scanf返回值被忽略怎么办,掌握了这个办法后,就再也不会有这个苦恼啦. 先在vs的安装路径里找到:newc++file.cpp文件,然后点击鼠标右键找到文件所在位置. 找到文件所在的位置后将该文件 ...
最新文章
- 5G 在地空通信网络中的需求
- 石油大c语言答案,中国石油大学C语言答案
- 数据库基础知识——DDL语言
- Bytom的链式交易和花费未确认的交易
- nginx模块使用详解
- Python 创建本地服务器环境生成二维码
- 大众点评产品分析报告
- 谷歌最新版本浏览器如何兼容flash插件
- UVA1629 切蛋糕 Cake slicing 题解
- caffe 训练笔记总结
- 出海推荐 (出海服务器盘点)
- 4567: [Scoi2016]背单词 trie+贪心
- Eclipse Memory Analyzer,内存泄漏插件,安装使用
- 高数复习(2)--方向导数与梯度的理解 附根据梯度求轨迹的基本模型
- 搭建文字转语音(TTS)服务器
- 动态规划(DP)01
- ctrl跳转失败 studio uap_uap进不去,重装studio和uap都不能行,请大神给看看
- YGG 与 Web3 平台 Strider 达成合作,用 DAO 工具和资源为创作社区赋能
- iOS开发基本功的那些事儿(未完待续)
- philips 968 也可以telnet
热门文章
- Android 软键盘不能弹出
- chinanet免费wifi登陆器
- Arduino Uno WiFi rev 2开发板
- CIKM Competition数据挖掘竞赛夺冠算法-陈运文
- Java面试-String、StringButtfer和StringBuilder之间的区别
- Android开发重点难点1:RelativeLayout(相对布局)详解
- keras采用LSTM生成尼采风格文章
- java enum valueof_Java 解决Enum.valueOf找不到枚举出现的异常
- Linux操作系统基础之软件管理
- 如何 修改服务器控件的text,设置TextBox控件的TextMode属性