2012-11-02 4 views
2

저는 C++로 작성된 프로그램을 사용자로부터 텍스트를 받아서 파일 핸들을 사용하여 텍스트 파일에 저장합니다. 다음은 프로그램 스 니펫입니다.어떻게하면 텍스트 파일에 추가 할 수 있습니까?

프로그램이 정상적으로 작동합니다. 유일한 문제는 텍스트 파일에 텍스트를 추가하지 않는다는 것입니다. 오히려 기존 텍스트를 "제거"하고 새 텍스트 만 저장합니다.

즉, 프로그램의 이전 세션에서 저장된 텍스트가 삭제되고 대신 새 텍스트가 저장됩니다. 이 문제를 어떻게 해결할 수 있습니까?

+0

이 코드는 C++보다 더 많이 사용됩니다. 엄격한 C++로 개발하려면 fstream을 사용하여 –

답변

12

파일을 열 때 O_APPEND 플래그를 포함하십시오. _open()에 대한 참조 페이지를 참조하십시오.

이것은 C++이므로 ofstream을 대신 사용해보십시오. 이들은 유형에 안전하며 파일에 기록되는 인수의 길이를 지정해야한다는 요구 사항을 제거합니다.

std::ofstream out(full_path, std::ios_base::app); 
if (out.is_open()) 
{ 
    out << "----Session----\n\n" 
     << "Date/Time: " << datetime << "\n\n" 
     << "Text: " << text << "\n\n\n\n"; 
} 
+0

답장을 보내 주셔서 감사합니다. :) – Matthew

관련 문제