scanf是C语言用来从键盘读取数据的标准输入函数。
下面我们来看一组报错
上面显示此函数或者变量可能不安全,建议使用scanf_s。
scanf_s确实可以解决目前的问题,但是scanf_s不是标准的C语言函数,是微软VS专属的“安全版”,别的编译器不认,那我们该如何解决这个问题呢?
有两种方法
方法一
报错中有一个提示“To disable deprecation, use _CRT_SECURE_NO_WARNINGS”,意思是若要关闭此弃用提示,请使用_CRT_SECURE_NO_WARNINGS,所以我们只需要在文件的最上面,也就是开头加上一行#define _CRT_SECURE_NO_WARNINGS(注意一定不要少了#define)就可以解决这个问题。
但是使用这个方法需要在每个文件上面都加上一行#define _CRT_SECURE_NO_WARNINGS,是不是太过麻烦?还有没有更简便的方法呢,当然有啦,下面我将告诉大家第二个方法。
方法二
我们需要在VS这个大文件夹下找到一个名叫newc++file.cpp的小文件,但是这么大我们怎么找呢,我们就需要下载一个软件,叫everything,官网的下载地址我放在下面啦,下载好everything之后我们就点开它,输入newc++file.cpp,就可以找到这个小文件,找到之后我们会发现旁边的内存显示0KB,说明里面什么都没有,点开它,输入#define _CRT_SECURE_NO_WARNINGS,然后点保存,然后我们就会发现第二个问题
我们并没有管理员权限,这个时候我们就可以使用我们的小智慧啦,我们把文件移动到桌面,我们在桌面这个newc++file.cpp文件中输入#define _CRT_SECURE_NO_WARNINGS
这个时候我们再点保存就可以成功啦,成功之后把桌面这个文件移动到原本文件的位置替换掉原来的newc++file.cpp文件,就大功告成啦,接下来你再从VS中创建一个文件,开头就会自带一个#define _CRT_SECURE_NO_WARNINGS,我们就不用在每一个文件前面加入一行#define _CRT_SECURE_NO_WARNINGS。
下载 - voidtools