【发布时间】:2016-08-17 10:55:58
【问题描述】:
我有一个简单的问题——我怎么可能在控制台窗口中写一些东西给std::cin而不将它分配给string或char[]?然后如何读取缓冲区中存储的字符数?
假设我想创建一个char 的数组,但它应该具有输入长度的大小。我可能会创建一个缓冲区或一个大尺寸的变量来存储输入,然后读取它的长度,将内存分配给我的 char 数组并复制它。但我们也可以说我是一个纯粹主义者,我不希望使用任何额外的(除了流缓冲区)内存。是否有可能访问std::cin 缓冲区,读取存储的字符数并将它们复制到我的数组中?我试图找到答案几个小时,阅读 cpp 参考,但我真的找不到解决方案。我什至找不到是否有可能在不将其分配给变量的情况下向std::cin 缓冲区写入内容,即执行cin >> variable。如果您对此问题有其他解决方案,我将不胜感激。
另外,有人知道我在哪里可以找到有关缓冲区如何工作的信息(意味着计算机在哪里存储来自键盘的输入、如何处理它以及 iostream 如何与计算机一起工作以从中提取数据)。
非常感谢!
【问题讨论】:
-
"向 std::cin 缓冲区写入内容而不将其分配给变量,也就是执行 cin >> 变量" -- 你的意思是 "read 从 std::cin “?这就是你的“aka”部分所做的。