getchar()的作用

2023-10-27

就目前而言,我所遇到的getchar()有两处

(1)在程序末尾加getchar(),用来让程序不会立即退出,跟system("pause");是一样的功能.可能你在写完代码后用ctrl + F5运行时,不加getchar();程序也不会立即退出,这是当然的,编译器有这个功能.不过如果你从debug文件夹下用.exe文件打开代码,没有getchar()或system("pause");程序会闪一下就消失,可能就零点几秒.getchar();让程序停留在这一步,直到它从键盘接收到消息.

(2)在两次连续从键盘输入语句中间.这个就有点意思了,下面我用一段代码演示


这段代码里getchar()被我注释掉了,看一下运行结果


看出什么了吗?下面那句gets(str2)直接执行了,我还没有输入字符,它就执行结束了.

看一下加了getchar()的程序


看到差异了吗?这里gets(str2)直接没有执行,下面我键入命令


这才是我想要的运行结果.

那么为什么会出现这种情况呢,我自己也上网查了些许资料,以下为本人总结:

当从键盘输入时,键盘输入的字符会保存在缓冲区,当键盘按下enter建时,缓冲区被清空,缓冲区的内容被写入目标内,比如我这段代码的目标就是str,即我从键盘输入的list被写入str数组里,这个时候缓冲区还有什么呢?准确的说,这时缓冲区里还有一个字符'enter',

如果不加getchar(),缓冲区会把'enter'这个字符写进gets(str2),这时程序就会像上面那样,直接结束.而加了getchar();它会吃了缓冲区里的'enter'字符,这时候缓冲区才是真的什么都没有,gets(str2)等待缓冲区写入内容,这时程序才会像下面那样执行


每日一句

He is born in a good hour who gets a good name.


生逢其时,美誉自至。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

getchar()的作用 的相关文章

  • SQLite3在windows下的配置(链接VC++或者VS)

    一 SQLite3 简介 SQLite3 是一个开源免费的嵌入式关系数据库 xff0c 它在 2000 年由 D Richard Hipp 发布 xff0c 它不像大型数据库管理系统 xff0c 占用系统大量资源 SQLite3 是用 C
  • Unity3d 5.3.5使用sqlite3

    国内讲的乱七八糟 xff0c 更有故作神秘提供Mono Data Sqlite dll System Data dll的 xff0c 就是不告诉你这两文件在哪里 我很无语 看国外的 xff0c 多靠谱 http answers unity3
  • mysql trigger 使用以及与 sqlite3 trigger 比较

    一 触发事件的表与触发更新的表使用同一个表 使用情景 xff0c 表里的某行数据发生update时自动更新修改时间 updated sqlite3 3 40 0 MariaDB 10 10 2 对应 MySQL 8 1 sqlite3 up
  • SQLITE3 使用总结(3~5)(转)

    3 不使用回调查询数据库 34 Z6 b L 34 A 39 i8 M w d 96 T6 F H m2 上面介绍的 sqlite3 exec 是使用回调来执行 select 操作 还有一个方法可以直接查询而不需要回调 但是 xff0c 我
  • linux下C++连接sqlite3

    linux下 xff0c c 43 43 连接sqlite3 xff0c 不需要额外的安装依赖库 xff0c linux自带了sqlite3 xff0c 在编译的时候 xff0c 只需要将sqlite3的库加入编译参数中即可 sqlite3
  • sqlite3中BLOB数据类型存储大对象运用示例

    1 常用接口 个人比较喜欢sqlite 使用最方便 xff0c 唯一的准备工作是下载250K的源 xff1b 而且作者很热心 xff0c 有问必答 以下演示一下使用sqlite的步骤 xff0c 先创建一个数据库 xff0c 然后查询其中的
  • 2017-06-08 每日一记 sqlite3_bind_blob函数

    sqlite3函数 xff1a sqlite3 bind blob stat 1 pdata int length of data in bytes NULL 参数1 xff1a sqlte stmt 参数2 xff1a 的索引 xff0c
  • SQLite3源码学习(31) WAL日志的锁机制

    1 锁的原理 先来回顾一下回滚日志的文件锁 xff0c 之前的锁是针对数据库文件加锁的 xff0c 有4种类型 xff0c 分别是shared reserverd pending和exclusive 在WAL日志模式下不再使用原来的锁 xf
  • sqlite3 database is locked 问题解决方案

    sqlite3 database is locked 问题解决方案 sqlite3只支持一写多读 读与读可以同时进行 读与写不可同时进行 写与写不可同时进行 一写多读的案例 场所 span class token punctuation s
  • Django实战(自定义模块+Echart Tree+sqlite3)

    主要从以下这些方面依次介绍这次django实战经验 xff1a 数据处理django基本框架搭建sqlite3数据库Json数据Echart树状图Jquery 异步刷新laydate 日期查询前后端交互 数据处理 从本地文件夹中获得所有源文
  • vue源码中值得学习的方法

    作者 chinamasters https segmentfault com a 1190000025157159 最近在深入研究vue源码 把学习过程中 看到的一些好玩的的函数方法收集起来做分享 希望对大家对深入学习js有所帮助 如果大家
  • SQLite下载、安装与连接

    1 下载SQLite SQLite官网 https www sqlite org download html 根据自己电脑操作系统配置 选择32位或64位下载 一般情况下是64位 总共两个压缩包 或者直接去 https download c
  • Sqlite3之C++开发常用API总结

    文章目录 Sqlite3之C 开发常用API总结 使用流程 sqlite3 open Sqlite3 prepare sqlite3 bind sqlite3 step sqlite3 column sqlite3 exec sqlite3
  • 嵌入式ARM移植sqlite3

    Sqlite3数据库移植 平台 处理器 I MX6ULL 内核 linux 4 1 15 官网下载源码 https www sqlite org download html tar vxf sqlite autoconf 3390400 t
  • iOS中的数据持久化方式

    iOS中的数据持久化方式 基本上有以下四种 属性列表 对象归档 SQLite3和Core Data 1 属性列表 涉及到的主要类 NSUserDefaults 一般 NSUserDefaults standardUserDefaults 就
  • Sqlite3 导出/导入SQL语句

    前言 Sqlite3 提供了较轻便的数据库操作 速度非常快 也比较稳定 在嵌入式产品中用的非常广泛 但嵌入式产品往往由于不稳定性因素非常多 备份是必不可少的 直接拷贝 db 文件并不是太好的主意 所以引出本文所要讲的主题 Sqlite3 导
  • Sqlite3 C++ 使用方法

    需要在 C 程序中读写 sqlite3 数据库 查阅了一下资料 发现了一个简单实用教程 另外还有如何在windows下生成sqlite3静态库 生成好的sqlite3静态库可以在这里下载 windows下生成sqlite3静态库 去 sql
  • sqlite3的交叉编译

    比如说我们在qtcreator中编写程序的时候想用到sqlite3数据库 但是因为qtcreator中的编译器中的库中并没有sqlite3的库 所以肯定编译不了 所以若想在qtcreator中编译sqlite3的程序 首先的将sqlite3
  • SQLite向arm板子的移植

    SQLite向arm linux的移植 SQLite是一个开源的嵌入式关系数据库 我们用它来管理从M0端接收的数据 将检测到的仓库信息存储起来 SQLite环境的建立 首先从下载最新版本的sqlite源码包 我下载的是sqlite amal
  • Peewee

    Part1前言 在 Python 的 ORM 框架中 比较主流的有 Sqlalchemy peewee pony 等等 但是其中 peewee 和 Django 的 Models 框架很像 如果了解 Django 的同学肯定对 peewee

随机推荐

  • js爬虫反扒

    3 js动态网页抓取方式 重点 许多时候爬虫取到的页面仅仅是一个静态的页面 即网页的源代码 就像在浏览器上的 查看网页源代码 一样 一些动态的东西如javascript脚本执行后所产生的信息是抓取不到的 下面两种方案 可用来python爬取
  • MyBatis—利用MyBatis查询(查询所有,查询一行,条件查询)

    文章目录 1 查询所有 2 查询详情 通过特定属性查询 3 多条件查询 1 接口参数列表三种表达方式 2 多条件查询 3 动态Sql 4 多条件动态查询 5 单条件动态查询 1 查询所有 基本步骤 1 定义mapper接口 编写接口方法 2
  • 常用算法之分治算法(如何解决汉诺塔问题)

    1 什么是分治算法 分治 从字面上解释就是 分而治之 将一个复杂的问题分解成为两个或者更多的相同或者相似的子问题 再把子问题分成更小的子问题 直到最后的子问题简单到可以直接求解 原问题的解就是子问题解的合并 复杂问题 gt 子问题 gt 更
  • 目标检测框架在目标跟踪中的应用

    目标检测框架在目标跟踪中的应用 从SiamRPN将跟踪问题定义为one shot detection任务之后 出现了大量将检测组件由于跟踪的研究 不过Siamese系列一个很大的问题在于其本质仍然是一个模板匹配问题 网络关注的是寻找与tar
  • 100天精通Python(基础篇)——第15天:布尔类型和比较运算符

    文章目录 布尔类型 比较运算符 示例代码 布尔类型 True 表示真 False 表示假 比较运算符 示例代码 bool 1 True bool 2 False print f bool 1 bool 1 类型 type bool 1 pr
  • [转载] 机器学习数据集统计系列(二)

    金融 美国劳工部统计局官方发布数据 房地产公司 Zillow 公开美国房地产历史数据 沪深股票除权除息 配股增发全量数据 截止 2016 12 31 上证主板日线数据 截止 2017 05 05 原始价 前复权价 后复权价 1260支股票
  • 很抱歉,EXCEL遇到错误,使其无法正常工作,因此需要关闭EXCEL。是否希望我们立即修复?...

    出现以上情况解决方式 按Windows R 输入 regedit 打开注册表 找到以下键值 HKEY CURRENT USER SOFTWARE Microsoft Office 16 0 Excel Options 在右侧新建DWORD值
  • 收藏:程序员必选其一的好用的15种文本编辑器

    很多时候比如编程查看代码或者打开各种文档下我们都会用到文本编辑器 Windows自带的记事本功能很简陋并且打开大文件很慢 因此很多童鞋都会有自己喜欢的一款文本编辑器 在这里 西西挑选前15个最佳的文本编辑器 这些编辑器实际上主要适合程序员
  • Java之命令提示符

    启动控制台 Window R 输入cmd回车即可打开 文件夹操作 盘之间的切换 gt 盘名称 PS 盘名大小写不做要求 在一个盘中进入文件夹 gt cd 空格 文件夹名字 返回上一级 gt cd 空格 or cd 直接回到根路径 PS 空格
  • 性能测试基础

    性能测试 一 性能测试的目的 二 五大性能指标 1 响应时间 2 并发用户数 3 吞吐量 4 思考时间 5 资源指标 三 测试方法 负载测试 找到最优负载量 压力测试 找到极限负载量 稳定性测试 关注长时间运行稳定性 并发测试 大量用户同一
  • windows系统下利用脚本批量修改文件夹下的文件属性

    步骤 1 在文件夹中新建一个文本文档 2 在文本文档中写入 ren 后缀 后缀 加号表示空格 如修改txt到csv则输入ren txt csv 3 保存文本文档 并修改后缀为bat格式 4 双击运行即可
  • mybatis批量更新 一条成功,多条失败

  • 上班族做什么副业赚钱?全面解析副业赚钱模式!

    每个人做事都需要输出精力 你的精力放在哪 时间就在哪 产生的结果也在哪 最近可能是大家对副业赚钱呼声最高的时候 怎么找到副业 如何做副业 是现阶段更多人在思考的问题 网上流行十多年的网赚事业 可能是想找副业的人首先想到的领域 我为什么把精力
  • window.history.go(-1)

    window history go 1 返回上一页
  • 鸿蒙设备开发实战8

    第7章 设备联网上云 7 1 对接华为云iot平台 华为云iot平台介绍 华为云物联网平台即华为设备接入服务 loT Device Access 提供海量设备连接上云 设备和云端 双向消息通信 批量设备管理 远程控制和监控 OTA升级 设备
  • 手撸代码-括号序列

    思路 1 利用栈的后进先出的特点 遇到左括号入栈 遇到右括号则将栈顶元素与右括号判断是否相等 不相等则不是合法的括号序列 2 循环结束后 栈为空 说明不是合法的括号序列 public boolean isValid String s Vec
  • 常见算法笔试或面试题

    Problem 1 Is it a loop 判断链表是否有环 Assume that wehave a head pointer to a link list Also assumethat we know the list is sin
  • springboot-分页功能

    1 分页功能的作用 分页功能作为各类网站和系统不可或缺的部分 例如百度搜索结果的分页等 当一个页面数据量大的时候分页作用就体现出来的 其作用有以下5个 1 减少系统资源的消耗 2 提高数据库的查询性能 3 提升页面的访问速度 4 符合用户的
  • ue4 小知识点 3d ui widget 跟随摄像机转动 始终面对摄像机

    1 c 用UWidgetComponent UesedUICom NewObject
  • getchar()的作用

    就目前而言 我所遇到的getchar 有两处 1 在程序末尾加getchar 用来让程序不会立即退出 跟system pause 是一样的功能 可能你在写完代码后用ctrl F5运行时 不加getchar 程序也不会立即退出 这是当然的 编