好的,我正在处理我的操作系统任务。我需要编写一个微内核,它可以用线程,信号量,事件等做一些基本的东西。 BCC 3.1正在模仿我的系统环境。经典调试真的没用。我在cout风格调试。 问题是cout的奇怪行为。它以块或其他东西写出来。如果我这样做,就像40个小丑一样,它会把一切都写出来。如果我做了39个,它就不会写任何一个。另一方面,如果我做40到79个小丑,它仍然只写前40,但如果我做了80个,它们都没问题等等。数字不准确,我不确定这个数字到底是多少。但我也注意到,改变cout-ed的字符串长度会产生相同的影响。只有我不知道有多少个字符等于一个cout电话。 可根据要求提供其他信息。谢谢你。
答案 0 :(得分:1)
听起来像缓冲,无论事实std::cout
不应该缓冲输出。无论如何,您可以尝试通过
cout
std::cout.flush();
或
std::cout << std::flush;
或
std::cout << std::endl;
甚至禁用缓冲:
std::cout.rdbuf()->pubsetbuf(0, 0);