scanf函数不能运行(VS2019)(解决方案)

简介: 直接放在拷贝文档里,以后每次建立新项目时就会自动添加这行代码(详情请看本人空间的:VS文件初始化教程)

很多同学在出识C语言时大多会遇到scanf不能使用的问题


先上解决方案!


方案一:在每一个scanf后面加_s        scanf—>scanf_s


scanf_s


方案二:在项目第一行定义_CRT_SECURE_NO_WARNINGS


#define _CRT_SECURE_NO_WARNINGS 1


方案三:一劳永逸,但需要一点技术。找到vs的拷贝文件把我们方案二的代码


直接放在拷贝文档里,以后每次建立新项目时就会自动添加这行代码(详情请看本人空间的:VS文件初始化教程)


现在我就来告诉大家为什么报错,以及如何解决。


09660565b2c8452c86892ee482377541.png


 我们在写好代码后,ctrl+F5让代码运行


27f59f39dbad46d2bfb084cbeefad3e0.png

57279aaf1ba74c88a8a7686585f713c8.png


随之而来的就是一乱连串的报错哈哈,为什么会出现这中情况呢?我们来看一下输出分析


2ab7792c8cf4420f807a6383bf05c04e.png


他说:scanf这个函数不安全,建议我们使用scanf_或者使用_CRT_SECURE_NO_WARNINGS


我们来测试一下


1. 加上_s


c1156a8a18ee40959a989bd38f2c0671.png


2. 定义_CRT_SECURE_NO_WARNINGS


1c2e473f46164eff88ff9c2b543a9495.png


都能使代码很好的完成。


这时候很多好奇的宝贝就会问了,为什么不安全呢,我们难道学了个不安全的函数?


我们通过测试代码来阐述它的不安全


#define _crt_secure_no_warnings 1
#include<stdio.h>
int main()
{
  char arr[5] = { 0 };
  scanf("%s", arr);
  //这时候scanf就可能不安全了,arr定义的5个空间,而我们通过scanf可以输入很多个数字
  //比如输入六个数字然后回车,会直接报错
  //scanf是你给它多少它直接存多少,没有管空间是否能承受得住
  //scanf_s是只有vs里才有的,其他编译器不易定能运行成功
  //所以我们直接在第一行直接定义#define _crt_secure_no_warnings 1消除报错
  //就不用每次写scanf的时候都写成scanf_s
  return 0;
}


我们定义的arr数组为5个空间,而我们通过scanf可以输入很多个数字


比如输入六个数字然后回车,会直接报错


scanf是你给它多少它直接存多少,没有管空间是否能承受得住

另外scanf_s是只有vs里才有的,其他编译器不易定能运行成功(不具有通性)


所以长远来看我们最好还是使用方案二,三的方法消除报错。

相关文章
|
Python
超简单一步汉化Pycharm工具
超简单一步汉化Pycharm工具
494 0
|
负载均衡 网络协议 Dubbo
微服务架构 | 3. 注册中心与服务发现
注册中心用来集中管理微服务,实现服务的注册,发现,检查等功能;
3691 2
微服务架构 | 3. 注册中心与服务发现
|
11月前
|
人工智能 芯片
北京市经开区对首次通过国家级大模型备案一次性奖励100万!
北京市为推动人工智能产业发展,出台了多项政策支持大模型及AI企业。经济技术开发区提供算力服务补贴(最高2000万)、数据集建设支持(最高200万)等;经信局推出算力券补贴(最高200万/年)。海淀区对通用和垂直大模型给予资金补贴(最高1000万)。石景山区则提供算力建设、应用、房租等多方面补贴(最高1000万),并强调智算中心建设。这些政策有效降低了研发成本,促进了技术创新与产业升级,助力北京在全球AI领域领先。
|
4月前
|
JSON 缓存 API
孔夫子旧书网 API 实战:古籍与二手书数据获取及接口调用方案
孔夫子旧书网作为国内知名古籍与二手书交易平台,其数据对图书收藏、学术研究及电商系统具有重要价值。本文详解其API调用方法,涵盖认证机制、搜索参数、数据解析及反爬策略,并提供可直接使用的Python代码,助力开发者合规获取数据。
|
8月前
|
监控 Java 关系型数据库
Spring Boot整合MySQL主从集群同步延迟解决方案
本文针对电商系统在Spring Boot+MyBatis架构下的典型问题(如大促时订单状态延迟、库存超卖误判及用户信息更新延迟)提出解决方案。核心内容包括动态数据源路由(强制读主库)、大事务拆分优化以及延迟感知补偿机制,配合MySQL参数调优和监控集成,有效将主从延迟控制在1秒内。实际测试表明,在10万QPS场景下,订单查询延迟显著降低,超卖误判率下降98%。
372 5
|
人工智能 IDE 程序员
一文梳理我们是如何打造出国内领先的 AI 编程助手「通义灵码」
大语言模型的革命性突破使智能编程成为了可能,通义灵码正是基于通义大模型打造的 AI 编程助手,通过 IDE 插件的形式提供代码补全、单元测试生成等功能,能达到毫秒级的响应速度。目前,通义灵码已在阿里云内部及多家企业中应用,阿里云也在探索多智能体产品,即 AI 程序员,助力数字世界的蓬勃发展,颠覆 IT 生产力。
15875 240
|
缓存 算法 Java
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
这篇文章详细介绍了Java虚拟机(JVM)中的垃圾回收机制,包括垃圾的定义、垃圾回收算法、堆内存的逻辑分区、对象的内存分配和回收过程,以及不同垃圾回收器的工作原理和参数设置。
776 4
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
|
存储 SQL 关系型数据库
MySQL意向锁是什么?
意向锁用于协调InnoDB存储引擎中的行锁与表锁,避免全表扫描判断行锁的存在,提升性能。主要包括意向共享锁(IS)与意向排他锁(IX),分别在请求行级共享(S)锁与排他(X)锁前加于表级。意向锁自动管理,无需用户干预。例如,事务A锁定一行时先加IS锁,B事务可加IX锁但不能直接加表级X锁。意向锁与行级S/X锁兼容,仅与表级S/X锁冲突。这确保了锁机制高效且减少冲突。
499 0
|
算法 安全 Java
Gradle(10)一篇文章看懂 v1/v2/v3 签名机制
Gradle(10)一篇文章看懂 v1/v2/v3 签名机制
1323 0
Gradle(10)一篇文章看懂 v1/v2/v3 签名机制
|
算法 数据安全/隐私保护
加密标准中DES与AES到底是什么?两者有啥区别?
我们生活在一个信息爆炸的时代,各类隐私数据的保护成了现代信息技术中最为重要的技术之一。**加密**就是保护数据最直接也是应用最为广泛的方法。
692 0
加密标准中DES与AES到底是什么?两者有啥区别?