当使用诸如scanf
之类的函数时,您可以从缓冲区中读取字节,其中(通常情况下)会存储来自键盘的数据。这些数据如何存储?它存储在一个固定大小的矢量内吗?有没有什么办法直接从代码访问它?stdin缓冲区如何工作?
0
A
回答
3
标准库输入例程使用的缓冲区对于标准库的实现是私有的。除了通过发布的标准库接口之外,您无法访问它。
2
setvbuf()
函数可让您重新配置stdio流的缓冲类型,并将缓冲区替换为已分配的缓冲区。这并不意味着您应该访问C库后面的缓冲区,但它确实可以控制大小以及流是否无缓冲,行缓冲或完全缓冲。
1
您无法直接读取缓冲区。您可以做的最好的事情是直接在输入键盘时读取键盘输入,有效地使您可以编写自己的scanf()。要查看用于阅读击键的代码,请在此页上搜索“kbhit.c”:http://pwilson.net/sample.html
相关问题
- 1. 如何增加STDIN缓冲区大小
- 2. Flushing Perl STDIN缓冲区
- 3. 清除stdin缓冲区?
- 4. 加载stdin缓冲区
- 5. stdin和输入缓冲区的内部工作
- 6. InputStream缓冲区如何工作?
- 7. arduino串行缓冲区如何工作?
- 8. OpenGL的缓冲区如何工作?
- 9. 通道缓冲区如何工作?
- 10. php:// stdin缓冲区的监控大小
- 11. 是stdin缓冲区空的C
- 12. 检查stdin缓冲区是否为空
- 13. 缓冲流如何工作?
- 14. 如何检查stdin缓冲区是否包含一些数据?
- 15. 如何更改python的stdin缓冲区大小?
- 16. 如何检查TCL中stdin缓冲区是否为空?
- 17. 缓冲区缓存如何在oracle数据库中工作
- 18. log4net的缓冲区大小不工作
- 19. 缓冲区溢出不工作
- 20. 如何清除缓冲区?
- 21. 如何“重置”缓冲区?
- 22. 如何用缓冲区删除输入流的缓冲区?
- 23. 如何恢复emacs缓冲区列表中的缓冲区?
- 24. 如何强制ECB将GUD缓冲区视为comilation缓冲区?
- 25. 如何将BGRA缓冲区转换为RGBA缓冲区格式?
- 26. 我如何转换的char *缓冲区为unsigned char缓冲区
- 27. 如何将缓冲区写入缓冲区
- 28. ws2812b模块的缓冲区是如何工作的?
- 29. 这段代码如何与缓冲区一起工作? Java
- 30. Node.js,协议缓冲区和ubuntu - 如何让它工作?