栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【#define

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【#define

 对于初学者在VS编译器中使用scanf、strcpy、fopen等一些函数报错的问题,错误内容为“错误C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. ”。

原因在于scanf_s、strcpy_s、fopen_s不是标准C语言提供的,是由VS编译器提供的,编译时将会报错,举例了四个解决方案,最终效果都一样,在预编时加个宏处理一下,让其忽略安全检测,如下图所示:

【解决方案1】也是较为推荐的解决方案,在 VS 的安装路径下找到newc++file.cpp 文件,通常路径为:VisualStudio_2015VCvcprojectitems,如下图所示:

下载Edit with Notepad++打开文件,在文件中输入“#define _CRT_SECURE_NO_WARNINGS”,保存退出即可(注意define后面的空格),之后每次在VS新建文件后,都会开开头自动生成“#define _CRT_SECURE_NO_WARNINGS”,不需要每次手敲,如下图所示:

【解决方案2】根据报错内容修改,用scanf_s函数替代scanf函数。考虑到后期代码在不同编译器下的可移植性,不推荐采用该解决方案。

【解决方案3】需要每次新建原文件后在原文件的第1行输入“#define _CRT_SECURE_NO_WARNINGS”。

【解决方案4】依次打开项目 -> 属性 -> C/C++ -> 预处理器 -> 预处理器定义中添加 _CRT_SECURE_NO_WARNINGS 这个预定义(注意不需要#define),同上该方案仅在当前工程内有效,每次新建需进行修改,如下图所示:

 综上所述,较为推荐【解决方案1】,可以永久性解决所出现的问题,一劳永逸。【解决方案2、3、4】也可以解决当前所出现的问题,但是会有一些小瑕疵,也在上述描述了,此处不再赘述。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/783882.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号