scanf返回值被忽略?解决vs中使用scanf函数报错问题(超详细)以及everything和SublimeText两款软件(附下载地址)的介绍

目录

一、问题描述

二、解决办法

三、软件介绍

Everything

Sublime Text


一、问题描述

相信很多初学c语言使用VS编译器都会碰到这个问题

当我们直接在vs中使用scanf函数时候会发生错误:

造成以上错误的原因是安全性漏洞: scanf函数是一个不安全的函数,因为它不提供缓冲区溢出的保护。Microsoft建议使用更安全的函数,如scanf_s,来替代scanf。如果你直接使用scanf,可能会收到警告或错误。

scanf_s是MicrosoftVS编译器提供好的,可以用scanf_s代替scanf使用,这是一种解决办法。

但是scanf_s只有VS编译器认识,到其他编译器上不认识了,这样就导致代码的可移植性不强,所

以还是不建议大家用scanf_s函数,下面介绍另外一种解决办法

二、解决办法

在vs编译器的第一行加上下面句代码:

#define  _CRT_SECURE_NO_WARNINGS 1

!!!注意: 上面这句代码一定要放在VS编译器的第一行!!!

说实话输入这样一句代码还是比较麻烦的,而且我们每次写代码基本上都要用到scanf函数,如果每次创建新建项(.c或者.cpp)都去输一遍工作量还是蛮多大的,有什么办法让我们每次创建新建项使这句代码直接出现在第一行呢?下面介绍一种方法:

实际上在VS编译器上,所有的.c和.cpp文件的创建都是拷贝自一个文件:newc++file.cpp文件,所以我们只要在newc++file.cpp文件中加入上面这句代码,我们以后创建的.c和.cpp文件中就有这句代码了。

大家可以在自己的电脑文件中搜索找到这个文件,我是用everything这款软件(下面我也会介绍这款软件的安装),注意newc++file.cpp文件可能有多个(比如你之前装了VS2019,而现在是2022版本的),我们找到自己现在的版本文件,右键文件,点击打开路径,找到文件的路径位置。以记事本的方式打开,将上面这句代码复制粘贴进去,按Ctrl+S保存。

大多数人都会出现上面的报错情况,不要慌!!!这是因为权限问题。点确定就行了,我们再换个方式搞定它。将newc++file.cpp文件复制一份放桌面上操作,因为桌面上的权限是比较高的,代码粘贴保存后再移到newc++file.cpp文件路劲下替换掉原本的文件点击确定就ok了!!!

上述操作完成后,就能每次在VS项目中创建源文件之后,源文件的第一行就会出现下面这句代码了:

#define  _CRT_SECURE_NO_WARNINGS 1

大功告成!!!下面我还推荐两款软件:everything与Sublime Test。

三、软件介绍

Everything

Everything是一款功能强大的文件搜索工具,主要用于在 Windows 操作系统中快速定位和查找文件和文件夹。该软件的特点在于其极快的搜索速度和简单易用的界面。可以说是对程序员必备的!!!重点还是这款软件还是免费的!!!

可以看到我只输入文件的前几个字符,我的电脑上的所有关于这串字符的文件都出现在下面了,谁用谁知道!

附上下载链接:

Everything下载地址

大家根据自己的需求下载即可。注意:只有Windows 操作系统上可用,不支持其他操作系统!

Sublime Text

Sublime Text 是一款流行的文本编辑器,广泛用于编写代码和进行文本处理。本质上就是记事本,不过这款软件可比记事本的功能强多了:跨平台、轻量快速、语法高亮和自动补全...

话不多说,直接上图:

上面两张分别是.cpp文件(c++代码)和.java文件(java代码)用Sublime Text打开,对比Windows自带的记事本,Sublime Text爽太多了。大家如果想默认用Sublime Text打开只需设置始终以这种方式打开即可。

附上下载链接:

Sublime Text下载地址

大家根据自己的电脑系统和需求下载即可。更多功能等待大家去探索。

如果上述有问题,欢迎在评论区留言讨论。

如果这篇文章对您有帮助请点个赞支持一下吧!谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值