大家在使用scanf库函数会给出这样的报错嘛,我们该怎么解决这样的报错呢?
根据报错提示,解决的办法有俩种
第一种:提示说这里的scanf不安全,考虑用scanf_s。我们把scanf改成scanf_s就好啦。
这里简单写个比较大小的程序,这是使用scanf和改成scanf_s后的区别
可以看到直接使用scanf会报错的,改成scanf_s后程序就没有报错运行出来啦
第一种方法比较简单,但会降低程序的可移植性,scanf_s这个库函数只有VS才可以识别,换成别的编译器就不行啦
第二种:
根据报错提示让我们用_CRT_SECURE_NO_WARNINGS来使报错无效,我们这里就把
#define _CRT_SECURE_NO_WARNINGS放在第一行就可以了。
第二种方法虽然比较好,但是比较麻烦,因为每次使用scanf都需要添加这样一条预处理命令。有没有一劳永逸的办法呢?
在VC的安装路径下有一个 newc++file.cpp的文件
在VS工程中创建新的.c或.cpp文件时,都是拷贝newc++file.cpp这个文件的!
所以我们只需要找到这个文件并在这个文件中添加#define _CRT_SECURE_NO_WARNINGS这样一条预处理命令就好啦
这里我们找到了这个文件,再以记事本或者VS的方式打开写入命令
会发现保存不了,原因是我们现在没有权限去修改这个文件里的内容
我们这里把这个文件复制一份到桌面(注意不是复制快捷方式奥),在桌面打开再写入命令保存就可以啦,最后再把桌面的这个文件替换原来的newc++file.cpp文件就可以啦