VS中scanf函数报错问题的几种解决方法
作者:南风与鱼
引言:
相信很多小伙伴在第一次使用scanf函数时大概率会遇到系统报错的问题(如下图所示)。翻译过来就是:“scanf这个函数或者变量可能不安全 ,考虑使用scanf_s替换,如果想让报错失效的话,请使用 _CRT_SECURE_NO_WARNINGS”。但这个报错只针对VS编译器,因为VS比较严谨,其它编译器不会出现这种情况。
那么这个时候我们该怎么办呢?接下来我就将解决这个问题的几种方法一一列举出来,有需求的小伙伴可以参考一下。
方法一:
根据报错提示将scanf函数替换成scanf_s即可。但是因为scanf_s这个函数是VS提供的,其它编译器没有。所以说,如果你在代码中使用了scanf_s函数,代码就不跨平台了(即没有了可移植性),所以并不推荐大家使用这种方法。
方法二:
在使用scanf函数的.c文件的第一行加入 #define _CRT_SECURE_NO_WARNINGS
正确示范:
错误示范:
注意:1.define与_CRT_SECURE_NO_WARNINGS之间要有空格,不然依旧会出错。
2.添加的这行代码一定要放在.c文件的第一行,一定要放在.c文件的第一行,一定要放在.c文件的第一行(重要的事情说三遍)。
缺陷:使用这种方法,每个.c源文件都需要手动添加,比较麻烦。
方法三:
让某一个警告或者错误失效,我们可以看到这个.c文件错误码的编号叫4996。
可以在程序的开头加入这样一行代码☞ #pragma warning(disable:4996) ,这样系统就不会再有报错信息啦!
注: 这种方法只适用于这个工程,只针对这个错误码来解决报错,不够一劳永逸。
方法四:(☪强烈推荐这种方法,绝对的一劳永逸)
在VS中有一个文件☞ newc++file.cpp,找到这个文件,在这个文件中加入 #define _CRT_SECURE_NO_WARNINGS,以后新建的.c文件中自动就会有这一行代码。
具体步骤如下:
1.打开文件资源管理器,找到你的VS安装路径,里面有个 newc++file.cpp文件
2.将 newc++file.cpp文件拷贝(Ctrl+c)一份,复制(Ctrl+v)到桌面
3.在桌面上将文件用记事本打开
4.将 #define _CRT_SECURE_NO_WARNINGS输入到记事本后保存退出
5.将改完后的文件拷贝到原来的位置,替换掉以前的文件,下次再创建新的源文件时就会自动写入#define _CRT_SECURE_NO_WARNINGS
到此这篇关于VS中scanf函数报错问题的几种解决方法的文章就介绍到这了,更多相关VS scanf函数报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!