什么时候std::cout缓冲区可以非空
when can std::cout buffer be non-empty?
我在这里看到过cout.rdbuf()
。这意味着,流cout
有一个与之关联的流缓冲区,在我们刷新它之前,它是非空的。
但是,在cout被刷新之前,我怎么能窥视cout的流缓冲区呢?即
cout << "I want to read this before this get flushed";
cout.UnknownFunction(); //this would save the buffer into a string variable
cout << flush;
但是在当前形式的代码中,所有内容都将在第一行之后刷新到屏幕上。
那么,什么样的结构允许我窥视cout缓冲区内部呢?
p。在windows7上运行vc++ 2010
我认为这不会在第一行之后冲洗,但我绝对不确定。我经历了endl
冲洗,但其他人没有,这是可能的,太多的字符自动冲洗,但我不知道。我(偶然地)创建了这样一个程序(简而言之):
cout << "x";
while (true) {}
程序运行这个,输出应该是debug,但是它没有为我写任何东西,所以我认为程序没有到达那里…
以下链接与本主题密切相关c++缓冲流IO
(但我仍然不确定如何/何时获得count .rdbuf()到字符串。)
相关文章:
- std::带有自定义缓冲区的 iostream 不允许我写入
- istream std::cin如何修改自定义istream缓冲区
- 在共享缓冲区内存中创建 ::std::string 对象
- 是否可以将 std::basic_ifstream 和 std::basic_ofstream 与自定义缓冲区一起使用?
- std::vector::assign/std::vector::operator=(const&) 是否保证在"this"中重用缓冲区?
- 如何将文件的一部分读取到std::list缓冲区?
- 在 std::string::end() 和 std::string::capacity() 之间使用缓冲区
- std::ifstream.read() 不会向我的缓冲区返回任何内容
- 输出操纵器 std::ends 是否向输出缓冲区添加空字符?
- 调整我的std :: string时,角色缓冲区会发生什么
- std::字符串与字节缓冲区(C++的差异)
- STD ::向量如何调整其内部缓冲区大小
- 在C 中,是否有可能在不兼容类型的std ::向量对象之间传输不同类型的缓冲区
- 我可以做一个循环,直到“std::cin”在输入缓冲区中看到“”字符
- 缓冲区刷新究竟是如何工作的(std::endl 和 之间的区别)?
- C++如何检查std::cin缓冲区是否为空
- 如何使用 std::istringstream 获取正确的缓冲区大小以进行数据解析
- 初始化的std ::阵列从指针优雅地变成缓冲区
- 别名,用于使用 std::aligned_union 和 std::aligned_union 进行小型缓冲区优化
- 如何使用 std::make_shared 创建动态大小缓冲区