2014-01-24 2 views
0

ofstream을 스트림의 처음으로 다시 설정하지만 데이터를 덮어 쓰지 않는 방법이 있습니까? 스트림을 처음부터 다시 설정하는 방법을 알고 있지만 이전 데이터를 모두 씁니다. 처음 데이터를 쓸 준비가 될 때까지 초기 데이터를 저장할 수 있다는 것을 알았지 만 매우 잘 저장 될지 확실하지 않은 매우 많은 양입니다. 내가 생각하기에 또 다른 옵션은 초기의 큰 데이터로 임시 파일을 만들고 실제 파일에 새 데이터를 쓰고 임시 파일을 복사 한 다음 지우는 것입니다. 가능하다면 그 두 가지를 좀 더 편리하게 찾고있는 것 같아요. 불행히도 데이터를 가져 오는 방법을 변경하는 것은 아닙니다. 이 코드 :ofstream을 리셋했지만 이전 데이터를 보존하십시오.

I hope this workssssss 
This is some test file 
I want to reset stream 
Start working......now 

답변

1

당신은 파일을 "앞에 추가"텍스트를 원하는 것 :

#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; 
} 

나는이 출력을 원하는 것입니다. 그건 불가능합니다. 새 텍스트는 이미있는 내용을 덮어 씁니다.

새 파일에 새 텍스트를 쓰고 나중에 원본 파일의 텍스트를 새 파일에 써야합니다.

관련 문제