解决方法
定义预定义符号:_CRT_SECURE_NO_WARNINGS
仔细阅读错误提示信息,我们不难发现,提示信息是这样的:
scanf
函数不安全,考虑使用scanf_s
来替换,如果不想看到错误,也可以使用_CRT_SECURE_NO_WARNINGS
.
那怎么使用呢?
在你使用不安全函数的源文件(.c)文件中的第一行,一定是第一行加上一句话:
#define _CRT_SECURE_NO_WARNINGS
#define后面的空格不能少,再去编译你的代码就好了。
注:
这里给大家解释一下,为什么不是使用scanf_s
函数,因为scanf_s
函数是VS编译器提供的,你如果在代码中使用了这个函数,你的代码如果放在gcc
编译器下编译,就会不认识scanf_s
函数,这样你的代码就不具有跨平台性,而且scanf_s
的使用方式和scanf
函数也有区别,不太建议初学者使用。
那以后是不是每次在.c文件中都要在第一句代码处写:#define _CRT_SECURE_NO_WARNINGS 呢?接下来就上干货!
一劳永逸的解决办法
在VS上,所有的.c文件,.cpp的文件创建其实是拷贝自一个文件:newc++file.cpp 。所以在newc++file.cpp的文件中加上这句话: #define _CRT_SECURE_NO_WARNINGS,以后创建的新的.c文件中都会自动有这句代码。
注:
在不同版本的VS环境下,new++file.cpp
这个文件的位置不同,也可能存在多个,所以建议自己多去尝试一下。这里推荐大家安装一个工具,everything,在电脑上搜文件非常快,下面就来演示一遍。
这里搜索可以看到有好几个这种文件,只需要选择自己对应的那个编译器的.cpp文件就行,选中文件然后右击鼠标,打开路径
再选择打开方式,用记事本方式打开,然后加上#define_CRT_SECURE_NO_WARNINGS 这句话再保存即可。
有的小伙伴权限不够,保存不了,那有什么办法呢?看下面。
先把文件复制到桌面一份,然后再去添加,因为桌面的权限比较高,保存完之后一定要记得再从桌面拷贝回去,替换调原来那个文件,才算是完事了,最后一定一定一定不要把这个文件搞丢了!!!否则后果很严重。
以上方法只针对VS编译器适用,其他编译器可能不需要
希望这篇文章能够给大家带来帮助,如果对你有用或者喜欢文章的话,那就给我个小小的关注和点赞哟,关注作者不迷路💙!