我在代码中加了如下的日志:
std::cout << "entries size:" << entries.size() << std::endl;
std::cout << "append 200, size:" << once_encode_buf.size() << std::endl;
std::cout << "append " << once_encode_count << ", size:" << once_encode_buf.size() << std::endl;
但是我很奇怪实际输出的时候日志会混到一起,结果类似于:
红框里面有的size没输出,有的则是没有换行。。
为什么会出现类似的情况呢?求C++大佬给解惑
std::cout << "entries size:" << entries.size() << std::endl;
在这里等价于
std::cout << "entries size:";
std::cout << entries.size();
std::cout << std::endl;
std::cout
多次调用<<
依然会产生交错。你用sstream
或者其他方法把流变成一个完整的字符串,再输出就好了。另外用std::cout
在多线程环境下输出日志记得及时std::flush
。