重新整理流

預設情況下,檔案流是緩衝的,許多其他型別的流也是如此。這意味著對流的寫入可能不會導致基礎檔案立即更改。在 oder 中強制所有緩衝寫入立即發生,你可以重新整理流。你可以通過呼叫 flush() 方法或通過 std::flush 流操作器直接執行此操作:

std::ofstream os("foo.txt");
os << "Hello World!" << std::flush;

char data[3] = "Foo";
os.write(data, 3);
os.flush();

有一個流操作器 std::endl 結合寫一個換行符和重新整理流:

// Both following lines do the same thing
os << "Hello World!\n" << std::flush;
os << "Hello world!" << std::endl;

緩衝可以提高寫入流的效能。因此,進行大量編寫的應用程式應避免不必要的重新整理。相反,如果不經常進行 I / O,應用程式應考慮頻繁重新整理,以避免資料卡在流物件中。