2014-09-22 77 views
2

我有兩個流指向同一個文件。第一個是std::ofstream os,第二個是std::ifstream is,都以二進制模式打開。C++使用不同的流讀寫相同的文件

我使用os來創建一個新文件。文件創建過程要求我(有時)讀取由os寫入文件的數據。 is流尋求所需的位置,讀取一些數據,然後os做它的(不同)偏移,然後刷新。

這是合法的嗎?溪流會彼此跺腳嗎?

+1

而不是在每次寫入後刷新,你可以執行'is.tie(&os)',它會自動完成。 – 0x499602D2 2014-09-22 22:22:10

回答

0

不容引用任何標準,但/因爲這是特定
(也許獨佔訪問,緩存在不同級別...)

你可以只使用一個單一的與fstreamios::in|ios::out
並尋求平臺每一個動作之前。

+0

我試圖避免這種情況,因爲它會在執行讀取或寫入操作時跳過(我需要維護堆棧的偏移量)來使事情複雜化。我想我會看看兩個流版本是否在我的平臺目標上進行了實驗。 – 2014-09-22 22:10:28

相關問題