Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1165247
  • 博文数量: 146
  • 博客积分: 6619
  • 博客等级: 准将
  • 技术积分: 1621
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-29 14:06
文章分类

全部博文(146)

文章存档

2020年(1)

2019年(4)

2018年(3)

2017年(5)

2015年(5)

2014年(7)

2013年(5)

2012年(11)

2011年(15)

2010年(13)

2009年(14)

2008年(63)

分类: C/C++

2008-03-20 14:25:52

getchar()是从stdin的缓存(缓冲区)中读取字符的,而不是键盘输入一个字符getchar就获取一个字符。原理简要如下:
1. 程序在执行到getchar()时停了下来,等待程序的输入缓冲区中输入数据。
2. 按键产生键盘中断,中断服务程序把键值存到键盘缓冲区。
3. 在行缓冲模式下,只有输入回车后,中断服务程序才会把数据(一行包括一个换行符号)送到程序的输入缓冲区中。
4. 程序调用getchar实际上是从输入缓冲区中取一个字符,并把这个字符从输入缓冲区中删除,缓冲区中字符数简减1。假如在调用getchar时,输入缓冲区内已经有字符了,即使没有按键盘,getchar也能从输入缓冲区取到一个字符,并把这个字符从输入缓冲区删除。
阅读(1152) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~