![](/img/trans.png)
[英]Inconsistent '%f' behaviour between boost::posix_time::time_facet and boost::posix_time::time_input_facet
[英]strange behaviour of cout << Boost::posix_time
我想计算完成循环所需的时间。
我做的事情如下:
ptime before = second_clock::local_time(); //get current time
cout << "Started: "<< before << " ... processing ...";
while(foo) {
....
}
ptime after = second_clock::local_time(); // get Current time
cout << "Processing took" << after - before;
这将输出:开始:“一段时间”
然后我等待循环结束才能看到“......处理......”
这是为什么? 它应首先播放整个文本,然后进入循环。
如果我将第一个cout更改为:
cout <<“开始:”<<之前;
它甚至没有显示循环结束前的时间。
这是我见过的最奇怪的事情......似乎我对提升时间的理解出了问题。
我在我的代码中也使用了boost :: threads,但是循环中的工作程序被spwaned所以我不知道这可能与这个问题有什么关系。
有人可以帮帮我吗?
ostream
包括cout
使用缓冲区,这意味着实现可以等到你是否会在实际操作之前发送更多数据。
为了让cout
更快打印,请使用
std::cout << std::flush;
或使用std::endl
,相当于"\\n"
后跟std::flush
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.