파일 열기
생성자나 open 뒤 if (!in)으로 권한·경로 오류를 잡습니다. 열기 실패도 failbit로 관찰됩니다.
ifstream/ofstream은 open과 읽기 시도 결과를 eofbit, failbit, badbit에 남깁니다. 루프는 상태 예측이 아니라 읽기 성공으로 돌립니다.
생성자나 open 뒤 if (!in)으로 권한·경로 오류를 잡습니다. 열기 실패도 failbit로 관찰됩니다.
while (std::getline(in, line))처럼 읽기 함수 반환값을 조건으로 두면 마지막 줄 처리와 EOF 판정이 어긋나지 않습니다.
eofbit는 정상적인 끝, failbit는 파싱 실패나 EOF 동반 실패, badbit는 장치·버퍼 오류입니다. 재시도 전 clear()가 필요합니다.
while (!in.eof())는 한 박자 늦게 실패를 봅니다. 상태를 지운 뒤 다시 읽으려면 clear()와 함께 seekg 같은 위치 복구도 검토해야 합니다.