Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;微核库特问题_C++_Debugging_Cout_Borland C++_Microkernel - Fatal编程技术网

C++ C++;微核库特问题

C++ C++;微核库特问题,c++,debugging,cout,borland-c++,microkernel,C++,Debugging,Cout,Borland C++,Microkernel,好的,我正在做我的操作系统作业。我需要编写一个微内核,它能够处理线程、信号量、事件等基本内容。 BCC 3.1正在模仿我的系统环境。经典调试真的没有用。我正在用cout风格调试。 问题是cout的怪异行为。它以块或其他形式写出来。如果我做了,比如说,40个字母,它会把所有的东西都写出来。如果我做了39个,它不会写任何一个。另一方面,如果我在40到79行之间,它仍然只写前40行,但如果我写了80行,它们都可以,等等。数字不准确,我不确定到底是什么数字。但我也注意到改变字符串的长度也会产生同样的效果

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

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

std::cout.flush()


std::cout
cout
已缓冲。
flush()
在需要时进行刷新,或者附加
endl
s进行刷新,或者改为写入
cerr
,这是无缓冲的。cerr不起作用。冲洗(cout)无效。我的意思是,cerr确实写出来了,但写出来的方式和cout一样。那么您的环境可能也在缓冲。顺便说一句,我想你指的是
std::cout.flush()
,而不是
flush(std::cout)
?flush不起作用。我怎样才能知道它是否在缓冲?冲洗根本没有效果。。。我尝试了最后一行,但得到了编译器错误:pubsetbuf不是streambuf的成员。