我有代碼,如下述:C++力的std :: COUT平齊(打印到屏幕)
std::cout << "Beginning computations..."; // output 1
computations();
std::cout << " done!\n"; // output 2
的問題,但是,是經常輸出#1和輸出#2出現(幾乎)同時。也就是說,直到computations()
返回後,經常輸出#1纔會打印到屏幕上。由於輸出#1的全部目的是指示背景中發生了某些事情(並且因此鼓勵來自用戶的耐心),所以這個問題不好。
有什麼辦法可以在computations()
調用之前強制std::cout
緩衝區打印?或者,是否有其他方法(使用除std::cout
以外的其他方式)打印到標準輸出以解決此問題?
我聽說'std :: endl'這個東西很流行...... – 2014-02-25 21:37:26
@ebyrob但是這樣會結束這一行,如果他想在計算之後繼續在同一行上打印,他需要手動沖洗。 – leemes
@非常真實。在這種情況下,他可以使用'fprintf()','std :: flush'(如下所示),或者修改他的'cout'版本,以便在每行代碼的末尾自動刷新......我有一個SO最後一個線程,但似乎已經失去了它。 – 2014-02-25 21:48:36