C++无延迟地写入控制台
C++ Writing to console without delays
我正在寻找一个C++解决方案来解决一个已经存在的问题:无延迟地写入控制台。
基本上,我试图将一大块文本输出到控制台窗口,而不会出现"键入"延迟。就像在中一样,即使它很快,你仍然可以看到它被一行一行地写在屏幕上。由于整个屏幕可以立即改变颜色,我知道这不是屏幕刷新的问题,而是输出的方式。
如果你需要更多的细节,请阅读另一个线程,该线程的OP比我更好地解释了这个问题。
现在,我将所有内容都存储在stringstream
缓冲区中,但如何立即输出它是我的难点。
谢谢。
更新:问题似乎是VS2013不喜欢立即输出。当我使用code::Blocks编译代码时,我得到了所需的输出。
stringstream s;
// ...
cout << s.str() << flush;
如果我理解正确,现在您必须将字符串流内容输出到控制台,例如:
stringstream s;
... // fill s with data
cout << s.str()
请记住,数据的大小必须是整个屏幕(即80x24),否则看起来就不好看了。
您还可以考虑放置flush(),这将触发屏幕上的即时输出,而不是缓冲。
cout << flush();
编辑:正如你所提到的,它仍然很慢,我建议使用curses——然而这个解决方案不是很便携。
导致此问题的另一个原因可能是VS中使用的编译标志
相关文章:
- C++:将控制台输出存储在宏中更好吗
- 如何仅为一个函数添加延迟
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- SSH通过/sbin/SSH无法读取RSA密钥文件(从控制台运行)
- C++控制台应用程序阻止退出
- 如何修复此iFile以将.txt输出到控制台
- 为什么控制台要求输入,即使代码中没有输入
- 以在Qt中的IF语句中设置时间延迟
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 模板化类中静态成员的延迟初始化
- 在 Windows 8/10 技术中完全实时的屏幕捕获,没有延迟
- 控制台输出在 Qt5 中未正确显示
- C++出现控制台错误.我无法识别源代码的问题
- 将自定义函数传递到基抽象类中以延迟执行
- C++程序不会从 Windows 控制台运行
- 有人可以向我解释为什么控制台输出 0 吗?
- 我希望改进或要求我目前的延迟/睡眠方法。C++
- Visual Studio 2017 停止工作,并在打开后显示许多控制台窗口
- C++延迟 for 循环而不暂停控制台
- C++无延迟地写入控制台