cHow执行标准输入缓冲区的工作



当使用诸如scanf之类的函数时,您从缓冲区读取字节,(通常)来自键盘的数据存储在缓冲区中。这些数据是如何存储的?它是否存储在一个固定大小的向量中?有没有办法直接从代码访问它?

标准库输入例程使用的缓冲区对标准库的实现是私有的。您只能通过标准库的已发布接口来访问它。

setvbuf()函数允许您重新配置演播室流的缓冲类型,并将缓冲区替换为您已分配的缓冲区。这并不意味着您应该访问C库背后的缓冲区,但它确实允许您控制流的大小以及流是未缓冲的、行缓冲的还是完全缓冲的。

不能直接读取缓冲区。您所能做的最好的事情是在键入按键时直接读取它们,从而有效地使您能够编写自己的scanf()。要查看读取按键的代码,请在本页搜索' kbit .c': http://pwilson.net/sample.html

最新更新