文章目录

  • 前言
  • 原因
  • 解决方法
    • 方法一:使用scanf_s
    • 方法二:在include前面添加宏定义,注意是在最前面添加,如下图
    • 方法三:添加头部文件,在include前后皆可
    • 方法四:找到newc++file.cpp文件

前言

visual studio排错笔记,使用visual运行代码时,出现如下报错:
error 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。要禁用弃用,请使用_CRT_SECURE_NO_WARNINGS。有关详细信息,请参阅联机帮助。

测试代码:

#include <stdio.h>
#define PRAISE "You are an extraordinary being."
int main(void)
{char name[40];printf("What's your name? ");scanf("%s", name);printf("Hello, %s.%s\n", name, PRAISE);return 0;
}

原因

visual studio编译器认为scanf函数是不安全的,所以即使你引入了头文件,但是编译器还是认为它是不安全的,所以会出现该错误

解决方法

方法一:使用scanf_s

VS系统提供了scanf_s()。在调用该函数时,必须提供一个数字以表明最多读取多少位字符。
很多带"_s"后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,有时黑客可以利用原版的不安全性黑掉系统。比如:char d[20];写成scanf_s("%s",d,20);才是正确的,有这个参数20使准确性提高。

所以使用scanf_s时,我们大致给name一个要占的字符数,如下所示

#include <stdio.h>
#define PRAISE "You are an extraordinary being."
int main(void)
{char name[40];printf("What's your name? ");scanf_s("%s", name, 20);//给name大致大致要占的字符数为20printf("Hello, %s.%s\n", name, PRAISE);return 0;
}

方法二:在include前面添加宏定义,注意是在最前面添加,如下图

#define _CRT_SECURE_NO_WARNINGS

例:

方法三:添加头部文件,在include前后皆可

#pragma warning(disable:4996)

例:

方法四:找到newc++file.cpp文件

绝对路径示例:D:\sw-Microsoft Visual Studio\2019\Community\Common7\IDE\VC\VCProjectItems

在里面添加指定头部文件,这样每次新建的文件都会包含该头部文件,注意,这个文件是没有权限修改的,可以使用txt修改完后,替换他再改名即可

visual studio报错:error C4996: ‘scanf‘相关推荐

  1. VS2013运行报错error C4996: 'scanf': This function or variable may be unsafe.

    报错内容: 1>------ Build started: Project: 约瑟夫问题, Configuration: Debug Win32 ------ 1> 约瑟夫问题.cpp 1 ...

  2. VS2015 scanf 函数报错 error C4996: 'scanf'

    错误提示:error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. ...

  3. 关于c语言报错error C4996: ‘scanf‘: This function or variable may be unsafe.

    关于c语言scanf 这里记录一下复习c语言数据结构时遇到的一些问题: 在VS中编译 C 语言项目,如果使用了 scanf 函数,编译时便会提示如下错误: int x; /*循环输入顺序栈元素用*/D ...

  4. VC2019编译报错 error C4996: This function or variable may be unsafe

    [问题描述] 使用新安装的VS2019编译C代码保报错error C4996: 'sprintf': This function or variable may be unsafe. Consider ...

  5. android studio报错Error:Project with path 'XXXX' could not be found解决办法

    刚从服务器上剪下来的工程编译死活报 project with path '... ' could not be found in project ' app' 这个错, 找不到依赖库,可是检查工程里面 ...

  6. android studio报错 ERROR: Cause: executing external native build for cmake

    最近在使用android studio编辑项目的时候,出现 "ERROR: Cause: executing external native build for cmake"的报错 ...

  7. [Android Studio]报错error:failed linking references的解决方案以及有关gradle和sdk版本号的思考

    最近在用android studio开发app的过程中,总是遇到类似"error:failed linking references"的报错,让人很是苦恼,心态差点被搞崩,经过上网 ...

  8. VisualGDB导致Visual Studio报错:未能从程序集Package.LanguageService中加载类型xxx

    文章目录 0. 前言 1. 出现这个问题的具体报错 2.解决方法 3.具体激活过程 到此为止,VisualGDB激活完成,同时作者不欢迎把激活器转到需要积分才能下载的地方去,请切勿干这件事情 要是觉得 ...

  9. Visual Studio报错解决方案:对路径...的访问被拒绝cmd.exe已退出,代码为3

    错误描述: 在将一台电脑上建立的项目或解决方案拷贝到另一台电脑上使用时,当项目内部有需要访问的路径时,有时会出现对路径访问被拒绝的问题,类似于如下情况: 之前遇到这种情况之后上网搜寻了各种办法,试了一 ...

最新文章

  1. 《数据结构》是计算机应用,《数据结构》期中测试-2014计算机应用技术用.doc
  2. java.lang.ClassCastException: [B cannot be cast to java.lang.String
  3. EasyExcel读取文件异常,报 java.lang.NoClassDefFoundError,/x2006/main/CTTableStyles
  4. 牛客网(剑指offer) 第五题 用两个栈来实现一个队列
  5. 管理服务器一般的作用,管理服务器作用
  6. 【招聘(北京)】北京华光普泰生物招聘.NET软件开发
  7. c++rpg黑框游戏_NO总本色出演断智大师兄,电竞魔音主C人《超级猎杀》一战成名...
  8. 你真的了解iOS怎么取属性的吗?
  9. 控制抽象之简化客户代码
  10. 一个简单的WPF字体选择器实现
  11. 识别率惊人的 GitHub 口罩检测 | 原力计划
  12. linux文件移出目录命令_Linux移动文件命令F01
  13. c语言图书信息管理系实验心得,C语言图书信息管理系统实验报告.doc
  14. 【SBUS,串口DMA】用STM32F407的串口DMA读取SBUS接收机信号
  15. 自动登录163邮箱的批处理
  16. 计算机太极图怎么设计,AI绘制太极图两种方法介绍
  17. Java的内心世界和外部世界协调的统一
  18. 软件测试cpu性能测试案例,性能测试之用例得分评价和 CPU 内存数据监控——谈谈个人看法和实践总结...
  19. 在unity中更改天空盒的几种方式
  20. 如何将 Visual Paradigm 桌面客户端连接到不同的 VP Online 存储库丨使用教程

热门文章

  1. Python输入多行多组数据两个两求和
  2. 8大排序算法图文讲解
  3. Scala入门到精通——第二十三节 高级类型 (二)
  4. linux检查磁盘空间使用情况df 命令
  5. Scrapy定向爬虫教程(一)——创建运行项目和基本介绍
  6. Hystrix熔断原理
  7. scala学习笔记-Array、ArrayBuffer以及遍历数组(7)
  8. 博客园添加一个分享的
  9. RT-Thread OS的启动流程
  10. js之数据类型及类型转换