目录

引言:

方法一:

方法二:

方法三:

方法四:(☪强烈推荐这种方法,绝对的一劳永逸)


引言:

        Hello,大家好,我是南风。相信很多小伙伴在第一次使用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

🎈正确示范:

🎈错误示范:

 🎈注意:

  • define_CRT_SECURE_NO_WARNINGS之间要有空格,不然依旧会出错。
  • 添加的这行代码一定要放在.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函数报错所列举的几种方法,如有不当之处,欢迎大家在评论区留言!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐