0
有沒有辦法將ofstream重置迴流的開始,但不寫入數據?我知道如何將流重置到開始,但是它會覆蓋所有舊數據。我意識到我可以保存最初的數據,直到我準備好寫入它,但是我不確定它會存儲的數量非常大。我猜想另一個選擇是用我最初的大數據創建臨時文件,在實際文件中寫入新數據,然後複製臨時文件並將其擦除。如果可能的話,我想我只是尋找一些更方便些的東西。不幸的是,改變獲取數據的方式並不是一種選擇。有了這個代碼:重置ofstream,但保留以前的數據
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, const char * argv[])
{
ofstream out_stream("~/Desktop/test_out.txt");
out_stream <<
"This is some test file\n" <<
"I want to reset stream\n" <<
"Start working......now\n";
out_stream.seekp(0, ios_base::beg);//this sets to beginning but erases old data
out_stream <<
"I hope this workssssss\n";
out_stream.close();
return 0;
}
我想這樣的輸出:
I hope this workssssss
This is some test file
I want to reset stream
Start working......now