0

好的,我正在处理我的操作系统任务。我需要编写一个微内核,它能够用线程、信号量、事件等做一些基本的事情。BCC 3.1 正在模仿我的系统环境。经典的调试真的没用。我正在以 cout 风格进行调试。问题是 cout 的奇怪行为。它以块或其他形式写出。如果我这样做,比如 40 个 couts,它会写出所有内容。如果我做了 39 个,它不会写任何一个。另一方面,如果我在 40 到 79 个 couts 之间进行,它仍然只写前 40 个,但如果我做了 80 个,它们都可以,等等。数字不准确,我不确定数字是多少。但我也注意到改变 cout-ed 的字符串长度的效果相同。只有我不知道有多少个字符等于一个 cout 调用。可根据要求提供更多信息。谢谢转发。

4

1 回答 1

1

听起来像缓冲,不管事实std::cout不应该缓冲输出。在任何情况下,您都可以尝试cout通过

std::cout.flush();

或者

std::cout << std::flush;

或者

std::cout << std::endl;

甚至通过禁用缓冲:

std::cout.rdbuf()->pubsetbuf(0, 0);

于 2011-07-27T13:43:21.490 回答