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

2023-03-30 08:48:43 浏览数 (1)

文章目录

  • 一、报错信息
  • 二、解决方案

一、报错信息


报错信息 :

代码语言:javascript复制
严重性	代码	说明	项目	文件	行	禁止显示状态
错误	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:02_WorkSpace02_VSHelloHelloHello.cpp	9	

错误代码示例 :

代码语言:javascript复制
// 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 等方法 , 则会弹出上述错误 ;

在源码最开始部分 , 添加

代码语言:javascript复制
#define _CRT_SECURE_NO_WARNINGS

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

修改后的代码示例 :

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

int main()
{
    // 定义变量
    int a = 0;

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

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

执行结果 :

0 人点赞