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()와 같다