ofstream 쓰기

텍스트 쓰기는 열기 모드와 오류 플래그로 결정된다

std::ios::out, std::ios::app, flush(), fail()/bad()는 파일 내용이 바뀌는 시점과 실패 지점을 나눕니다.

std::ios::out

기본 열기 쓰기 모드

설정 파일처럼 덮어쓰는 작업은 실행 전 백업이나 임시 파일 전략이 필요합니다.

std::ios::app

추가 모드 사용

반복 실행 때 같은 줄이 중복되는지까지 함께 살펴야 합니다.

flush()

출력 버퍼 flush

중간 상태가 필요한 기록은 flush 시점을 명시하면 추적이 쉬워집니다.

fail()/bad()

출력 스트림 상태 확인

clear()는 플래그만 지우므로 손상된 파일 내용은 따로 다뤄야 합니다.

덮어쓰기 새 파일 생성과 기존 파일 초기화를 같은 동작으로 착각하지 않습니다.
이어 쓰기 프로그램 재실행 후 로그 순서와 중복 라인을 함께 봅니다.
상태 플래그 failbit와 badbit를 나누면 복구 가능한 오류와 치명적인 오류가 분리됩니다.