VSstudio中scanf返回值被忽略的原因及解决方法(推荐)

 更新时间:2022年09月30日 09:56:32   作者:Genius-Sue  
这篇文章主要介绍了VSstudio中scanf返回值被忽略的原因及其解决方法,scanf返回值被忽略,接下来我就告诉大家该如何解决这个问题,需要的朋友可以参考下

相信有不少人在使用vs的时候会遇到以下这个问题:scanf返回值被忽略,接下来我就告诉大家该如何解决这个问题

在这里插入图片描述

出现问题的原因:

因为scanf()在读取数据时不检查边界,所以可能会造成内存泄漏。Microsoft公司觉得这个函数不安全,于是自己在VS编译器中提供了scanf_s()这个函数,想解决以下这个问题有以下几种方法:

方法一(不推荐!):

将scanf改为scanf_s即可解决这个问题,效果如下所示:

在这里插入图片描述


虽然这种方法可行,但是在这里不推荐使用这种方式,因为编写程序要保证其有良好的可移植性,scanf_s这个函数是Microsoft自己定义的,在ANSI C中只有scanf(),没有scanf_s(),所以如果跨平台移植的话代码很可能会报错,找不到scanf_s这个函数,在移植时需要更改,这样的代码就失去了良好的可移植性,所以不做推荐。

方法二(推荐):

在代码的第一行加入这句话:

#define _CRT_SECURE_NO_WARNINGS  1

这句话的意思是代码不进行SDL安全检查,这样就不会报错了,但是细心的人会发现,代码还是会有警告

在这里插入图片描述

显然作为一个合格的程序员我们是不容许任何一个警告的,在这里我也为大家提供了解决办法:
再加入这句话

#pragma warning(disable:6031)

这样就会忽略6031这个警告

在这里插入图片描述

现在我们的代码就非常的完美了。
但是可能还有人问了,每次都这么添加不是很麻烦吗?所以这里我为大家提供了一劳永逸的方法:
打开VS安装路径下的这个文件:

在这里插入图片描述

D:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\VCProjectItems

不同版本的路径也会有所不同,我这里是VS2022的路径,不同版本的路径可能不同,但是文件名是一样的,所以可以选择在文件夹中搜索newc++file.cpp这个文件。
打开文件后我们将这两句话复制进去后并且保存

#define _CRT_SECURE_NO_WARNINGS  1
#pragma warning(disable:6031)

如下:

在这里插入图片描述

这样之后我们创建一个新的.c文件它就会自动书写在文件的开头了。
以上就是关于scanf返回值被忽略的原因及其解决方法的所有内容了。

到此这篇关于VSstudio中scanf返回值被忽略的原因及其解决方法的文章就介绍到这了,更多相关VSscanf返回值被忽略内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言超详细讲解数据结构中双向带头循环链表

    C语言超详细讲解数据结构中双向带头循环链表

    带头双向循环链表:结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带来很多优势,实现反而简单
    2022-04-04
  • C语言 自增自减运算的区别详解及实例

    C语言 自增自减运算的区别详解及实例

    这篇文章主要介绍了C语言中的++a和a++的区别详解及实例的相关资料,需要的朋友可以参考下
    2017-05-05
  • Qt实现线程与定时器的方法

    Qt实现线程与定时器的方法

    本文主要介绍了Qt实现线程与定时器的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • C 语言中布尔值的用法实战案例

    C 语言中布尔值的用法实战案例

    这篇文章主要为大家介绍了C语言中布尔值的用法实战案例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • C语言结构体详细图解分析

    C语言结构体详细图解分析

    C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许你存储不同类型的数据项,本篇让我们来了解C 的结构体
    2022-03-03
  • C++实现和电脑对战三子棋实例

    C++实现和电脑对战三子棋实例

    大家好,本篇文章主要讲的是C++实现和电脑对战三子棋实例,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • Qt利用QSortFilterProxyModel代理实现自定义排序与联合过滤

    Qt利用QSortFilterProxyModel代理实现自定义排序与联合过滤

    QsortFilterProxyModel类用来为model和view之间提供强大的排序和过滤支持。这篇文章将利用QSortFilterProxyModel代理实现自定义排序与联合过滤,需要的可以参考一下
    2022-11-11
  • Qt示例教程之用Qt画一个温度计

    Qt示例教程之用Qt画一个温度计

    在Qt绘图中经常需要绘制一些仪表的刻度盘,比如温度计,下面这篇文章主要给大家介绍了关于用Qt画一个温度计的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • 如何把C++的源代码改写成C代码的方法

    如何把C++的源代码改写成C代码的方法

    这篇文章主要介绍了如何把C++的源代码改写成C代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • C++实现彩色飞机大战

    C++实现彩色飞机大战

    这篇文章主要为大家详细介绍了C++实现彩色飞机大战,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10

最新评论