错误记录Visual Studio 编译 C++ 代码报错 ( To disable deprecation, use _CRT_SECURE_NO_WARNINGS. )

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误记录Visual Studio 编译 C++ 代码报错 ( To disable deprecation, use _CRT_SECURE_NO_WARNINGS. )相关的知识,希望对你有一定的参考价值。





一、报错信息



报错信息 :

严重性	代码	说明	项目	文件	行	禁止显示状态
错误	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.	
Hello	Y:\\002_WorkSpace\\002_VS\\Hello\\Hello\\Hello.cpp	9	

错误代码示例 :

// Hello.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>

int main()

    // 定义变量
    int a = 0;

    // 从命令行接收数据, 并为变量赋值
    scanf("%d", &a);

    // 打印赋值会后的变量值
    std::cout << "a = "<< a << "\\n";





二、解决方案



这是在 Windows 中的 Visual Studio 中运行 C++ 程序中 , 如果程序中调用了 scanf、sprintf、strcpy、strcat 等方法 , 则会弹出上述错误 ;


在源码最开始部分 , 添加

#define _CRT_SECURE_NO_WARNINGS

宏定义 , 即可暂时屏蔽上述错误 ;


修改后的代码示例 :

// Hello.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>

int main()

    // 定义变量
    int a = 0;

    // 从命令行接收数据, 并为变量赋值
    scanf("%d", &a);

    // 打印赋值会后的变量值
    std::cout << "a = "<< a << "\\n";

执行结果 :

以上是关于错误记录Visual Studio 编译 C++ 代码报错 ( To disable deprecation, use _CRT_SECURE_NO_WARNINGS. )的主要内容,如果未能解决你的问题,请参考以下文章

奇怪的 Visual Studio 2008 C++ 编译器错误

Visual Studio 2015 Update 1 中的 C++ 内部编译器错误

visual c++ 6.0编译时总有一个错误是怎么回事?

Visual Studio 2015 (C++):在第一次构建错误时停止编译(不是第一个项目)

Visual Studio 2010在编译c++时为啥有错误也没有下划波浪线?

Visual Studio 2010在编译c++时为啥有错误也没有下划波浪线?