目录
一、问题描述
相信很多初学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 操作系统中快速定位和查找文件和文件夹。该软件的特点在于其极快的搜索速度和简单易用的界面。可以说是对程序员必备的!!!重点还是这款软件还是免费的!!!
可以看到我只输入文件的前几个字符,我的电脑上的所有关于这串字符的文件都出现在下面了,谁用谁知道!
附上下载链接:
大家根据自己的需求下载即可。注意:只有Windows 操作系统上可用,不支持其他操作系统!
Sublime Text
Sublime Text 是一款流行的文本编辑器,广泛用于编写代码和进行文本处理。本质上就是记事本,不过这款软件可比记事本的功能强多了:跨平台、轻量快速、语法高亮和自动补全...
话不多说,直接上图:
上面两张分别是.cpp文件(c++代码)和.java文件(java代码)用Sublime Text打开,对比Windows自带的记事本,Sublime Text爽太多了。大家如果想默认用Sublime Text打开只需设置始终以这种方式打开即可。
附上下载链接:
大家根据自己的电脑系统和需求下载即可。更多功能等待大家去探索。
如果上述有问题,欢迎在评论区留言讨论。
如果这篇文章对您有帮助请点个赞支持一下吧!谢谢!