1. 스트림 개념
•
C++ 에서 제공하는 입출력 매커니즘
•
스트림은 출발지 또는 목적지가 있고 한 방향으로 데이터를 전달한다
•
문자 기반 스트림 인스턴스 정리
스트림 | 클래스 | 데이터 흐름 | 버퍼링 여부 |
cin | istream | standard input >> 프로그램 | O |
cout | ostream | standard output << 프로그램 | O |
cerr | ostream | standard error << 프로그램 | X |
clog | ostream | standard error << 프로그램 | O |
•
wide character 사용 시 wcin, wcout, wcerr, wclog사용
2. 에러 검사
•
입출력 시 에러는 언제나 발생할 수 있다
•
에러가 한번 발생해서 error bits가 설정되면 이후의 입출력 연산은 실패한다
•
스트림 사용 전에 사용 가능한 상태인지 미리 검사해야 한다
•
입출력 스트림의 상태를 검사할 수 있는 메서드
메서드 | true 반환 조건 |
eof() | 스트림이 end-of-file에 도달해 eofbit가 설정된 경우 |
bad() | 복구하기 힘든 시스템 레벨의 입출력 문제가 발생하여 badbit가 설정된 경우 |
fail() | 복구 가능한 입출력 문제가 발생하여 failbit가 설정되거나 badbit가 설정된 경우 |
good() | eofibt, badbit, failbit 모두 설정되지 않아 goodbit가 설정된 경우 |
•
입출력 스트림 객체를 조건식으로 사용 시 !fail()과 같다
•
good()의 결과는 !fail() && !eof() 와 같다