FILE MODE

열기 모드는 기존 파일을 지울지, 보존할지 결정한다

텍스트 파일 쓰기의 가장 큰 위험은 코드가 아니라 모드 선택에서 시작됩니다. 같은 `<<` 출력이라도 `out`, `trunc`, `app` 조합에 따라 결과 파일이 달라집니다.

ios::out쓰기 기본값출력용으로 열며, 기본 조합에서는 기존 내용을 지울 수 있습니다.
ios::trunc기존 내용 삭제파일을 열 때 기존 내용을 비워 새 결과로 교체합니다.
ios::app끝에 추가기존 내용을 보존하고 모든 쓰기를 파일 끝에 붙입니다.
의도
코드
기존 파일 결과
주의
의도결과 파일 새로 만들기
코드ofstream out(path)
기존 파일 결과기존 내용이 새 출력으로 교체됩니다.
주의실수로 로그를 지울 수 있습니다.
의도로그 이어 쓰기
코드ofstream out(path, ios::app)
기존 파일 결과기존 내용 뒤에 새 줄이 붙습니다.
주의중복 기록 정책을 따로 봅니다.
의도바이트 그대로 쓰기
코드ios::binary
기존 파일 결과줄바꿈 변환 없이 바이트 단위로 기록합니다.
주의텍스트 파일과 읽기 방식이 달라집니다.
설정 파일이나 결과 파일은 교체가 자연스럽고, 로그 파일은 보존이 자연스럽습니다. 먼저 파일의 수명 정책을 정한 뒤 모드를 고릅니다.