![](/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.