首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

问个CSDN都不知道的有关问题,输入的字符是不是先进入键盘缓冲区,然后再进入cin所关联的流缓冲区

2013-09-28 
问个CSDN都不知道的问题,输入的字符是不是先进入键盘缓冲区,然后再进入cin所关联的流缓冲区?本帖最后由 u0

问个CSDN都不知道的问题,输入的字符是不是先进入键盘缓冲区,然后再进入cin所关联的流缓冲区?
本帖最后由 u011774561 于 2013-09-23 15:45:01 编辑 问个CSDN都不知道的问题,输入的字符是不是先进入键盘缓冲区,然后再进入cin所关联的流缓冲区?
之所以这么说,是因为我看到某书上这么写:


实际上,在内存中为每一个数据流开辟一个内存缓冲区,
用来存放流中的数据。
当用cout和插入运算符“<<”向显示器输出数据时,
先将这些数据送到程序中的输出缓冲区保存,
直到缓冲区满了或遇到endl,就将缓冲区中的全部数据送到显示器显示出来。
在输入时,从键盘输入的数据先放在键盘缓冲区中,
当按回车键时,键盘缓冲区中的数据输入到程序中的输入缓冲区,形成cin流,
然后用提取运算符“>>”从输入缓冲区中提取数据送给程序中的有关变量。
总之,流是与内存缓冲区相对应的,或者说,缓冲区中的数据就是流。


[解决办法]
对啊,说的没错,本来访问I/O设备就非常耗时,所以缓存起来,提高效率。
[解决办法]
引用:
Quote: 引用:

对啊,说的没错,本来访问I/O设备就非常耗时,所以缓存起来,提高效率。

那就是说键盘缓冲区和流缓冲区不是一个区喽?

键盘缓存区是在键盘上的,键盘里面有个控制芯片,外加一些Flash ,用来保存我们的原始按键信息,而流缓冲区是在内存中开辟的。
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

对啊,说的没错,本来访问I/O设备就非常耗时,所以缓存起来,提高效率。

那就是说键盘缓冲区和流缓冲区不是一个区喽?

键盘缓存区是在键盘上的,键盘里面有个控制芯片,外加一些Flash ,用来保存我们的原始按键信息,而流缓冲区是在内存中开辟的。

那就是键盘的内存喽,或者说键盘的驱动程序开辟的内存,对不对。

可以这么理解,没错~
[解决办法]
的确是这样,但是LZ又不开发驱动,关心这个?

热点排行