1 getchar()简介

getchar()是C语言中的函数,C++中也包含了该函数。getchar()函数的作用是从标准的输入stdin中读取字符。

也就是说,getchar()函数以字符为单位对输入的数据进行读取。

2 getchar()读取缓冲区方式

在控制台中通过键盘输入数据时,以回车键作为结束标志。

当输入结束后,键盘输入的数据连同回车键一起被输入到输入缓冲区中。

在程序中第一次调用getchar()函数从输入缓冲区中读取一个字节的数据。

需要注意的是,如果此时在程序中第二次调用getchar()函数,因为此时输入缓冲区中还有回车键的数据没有被读出,第二个getchar()函数读出的是回车符。

例如如下代码

1 char test1 =getchar();2 char test2 = getchar();

此时在控制台中输入字符“a”并且按下回车键,test1的值是字符“a”,而test2的值是“\n”,如图1所示。

图1 test1和test2的值

3 解决方法

可以使用rewind()函数来清理输入缓冲区中的数据。该函数的格式为

void rewind( FILE* stream );

其中,参数stream表示指向FILE结构的指针,即为指定的流。

该函数的作用是将文件指针移动到文件的起始位置处。

rewind()函数清理指定流中的错误指示符以及文件结束指示符。

将“2 getchar()读取缓冲区方式”中提到的代码修改为

1 char test1 =getchar();2 rewind(stdin);3 char test2 =getchar();4 rewind(stdin);

在控制台中,首先输入字符“a”然后按下回车键。

getchar()函数从输入缓冲区中读取字符“a”,之后调用rewind()函数清理输入缓冲区中的数据,stdin表示输入缓冲区的指针;之后再在控制台中输入字符“b”,然后按下回车键,getchar()函数从输入缓冲

区中读取字符“b”,最后再次调用rewind()函数清理输入缓冲区中的数据。

此时,test1和test2的值如图2所示。

图2 test1和test2的值

python getchar功能_C++ getchar()的使用方法相关推荐

  1. python getchar功能_getchar函数

    C/C++ getchar函数 最后更新于:2020-05-29 23:11:28 对于控制台程序,C语言中getchar函数一共有两个用处: 1.可以和用户交互,获取用户的键盘输入,例如:用户按下键 ...

  2. c语言getchar函数_C语言中带有示例的getchar()函数

    c语言getchar函数 C语言中的getchar()函数 (getchar() function in C) The getchar() function is defined in the < ...

  3. python创建类的实例方法-Python中动态创建类实例的方法

    简介 在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢? 其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时动态加载一些模 ...

  4. c# typescript_在任何IDE中从C#,Java或Python代码获取TypeScript接口的简单方法

    c# typescript by Leonardo Carreiro 莱昂纳多·卡雷罗(Leonardo Carreiro) 在任何IDE中从C#,Java或Python代码获取TypeScript接 ...

  5. Python最会变魔术的魔术方法,我觉得是它

    在上篇文章中,我有一个核心的发现:Python 内置类型的特殊方法(含魔术方法与其它方法)由 C 语言独立实现,在 Python 层面不存在调用关系. 但是,文中也提到了一个例外:一个非常神秘的魔术方 ...

  6. python后端开发框架加密_Flask框架实现的前端RSA加密与后端Python解密功能详解

    本文实例讲述了Flask框架实现的前端RSA加密与后端Python解密功能.分享给大家供大家参考,具体如下: 前言 在使用 Flask 开发用户登录API的时候,我之前都是明文传输 username ...

  7. 基于 MongoDB 的 python 日志功能

    本文首发于 Gevin的博客 原文链接:基于MongoDB的python日志功能 未经 Gevin 授权,禁止转载 基于MongoDB的python日志功能 why-log-to-mongodb 我几 ...

  8. python数据库模块_十二、Python高级功能之Mysql数据库模块

    Python高级功能之Mysql数据库模块 安装python mysql组件 # yum -y install MySQL-python.x86_64 以下根据实例来说明: >>> ...

  9. python 删除文件-python实现删除文件与目录的方法

    本文实例讲述了python实现删除文件与目录的方法.分享给大家供大家参考.具体实现方法如下: os.remove(path)删除文件 path. 如果path是一个目录, 抛出 OSError错误.如 ...

最新文章

  1. 超时时间已到。在操作完成之前超时时间已过或服务器未响应
  2. EM算法理解的九层境界
  3. Saas 平台,多域名,泛域名.如何做分站点的统计之解决方案
  4. 【Storm】storm安装、配置、使用以及Storm单词计数程序的实例分析
  5. 在同一基准下对前端框架进行比较(2019年更新)
  6. GIT关联本地仓库与远端仓库
  7. C++中new和malloc
  8. Centos中iptables和firewall防火墙
  9. Windows核心编程_窗口属性表
  10. 最全最详细的小白快速上手Modelsim教程
  11. css border设置为透明
  12. win10系统崩溃(UNEXPECTED_STORE_EXCEPTION)解决方法
  13. 唐门暗器之私有云排名
  14. 程序员的我是如何抢票的(Python)
  15. 7. django应用及分布式路由
  16. tensorflow2.4使用GooleNet实现识别植物花朵图像项目
  17. 永久开源的cms系统
  18. 街霸 隆(Ryu)升龙拳(Syoryuken)动画(四)制作过程中几个版本动画比较一下
  19. 【华为路由器基本ACL过滤配置】
  20. Java学习之编程入门

热门文章

  1. 2095. 删除链表的中间节点、19. 删除链表的倒数第 N 个结点、148. 排序链表
  2. 锚框生成算法anchors
  3. 什么是“一书一签”?
  4. mysql 小表连大表_MySQL 表之间关联查询时,为什么建议小表驱动大表?
  5. 7-4 高速公路超速处罚 (15 分)
  6. Android Design Support Library BottomSheetBehavior使用
  7. 百度定位sdk的api使用时获取地址信息为null的原因
  8. 以太坊Merkle tree学习
  9. sdut_java_相似三角形
  10. bootstrap下拉菜单dropdown点击后阻止自动收起菜单