std::ios_base:: iostate
|
typedef
/*implementation defined*/
iostate
;
|
||
|
static
constexpr
iostate goodbit
=
0
;
|
||
|
static
constexpr
iostate badbit
=
/* implementation defined */
static
constexpr
iostate failbit
=
/* implementation defined */
|
||
스트림 상태 플래그를 지정합니다. 이것은 BitmaskType 입니다. 다음 상수들이 정의되어 있습니다:
| 상수 | 설명 |
| goodbit | 오류 없음 |
| badbit | 복구 불가능한 스트림 오류 |
| failbit | 입출력 작업 실패 (포맷팅 또는 추출 오류) |
| eofbit | 관련 입력 시퀀스가 파일 끝에 도달함 |
목차 |
eofbit
eofbit는 다음과 같은 표준 라이브러리 함수들에 의해 설정됩니다:
- 문자열 입력 함수 std::getline 이 지정된 종료 문자에 도달하는 대신 스트림의 끝에 도달하여 완료되는 경우.
-
basic_istream::operator>>
의 숫자 입력 오버로드들이
num_get::get
처리의 2단계에서 다음 문자를 읽는 동안 스트림 끝에 도달한 경우. 파싱 상태에 따라
failbit가 동시에 설정될 수도 있고 설정되지 않을 수도 있음: 예를 들어, int n ; istringstream buf ( "1" ) ; buf >> n ; 는eofbit를 설정하지만failbit는 설정하지 않음: 정수 1 이 성공적으로 파싱되어n에 저장됨. 반면에, bool b ; istringstream buf ( "tr" ) ; buf >> boolalpha >> b ; 는eofbit와failbit모두를 설정함: 불리언 true 의 파싱을 완료하기에 충분한 문자가 없었음. - operator>> std::basic_istream 의 문자 추출 오버로드들이 추출할 문자 수에 대한 제한(있는 경우)에 도달하기 전에 스트림 끝에 도달하는 경우.
- std::get_time I/O 매니퓰레이터와 std::time_get 파싱 함수들: time_get::get , time_get::get_time , time_get::get_date 등에서 예상된 날짜/시간 값을 파싱하는 데 필요한 마지막 문자를 처리하기 전에 스트림 끝에 도달하는 경우.
- std::get_money I/O 매니퓰레이터와 money_get::get 함수에서 예상된 통화 값을 파싱하는 데 필요한 마지막 문자를 처리하기 전에 스트림 끝에 도달하는 경우.
-
모든 형식화된 입력 함수의 시작 부분에서 실행되는
basic_istream::sentry
생성자:
skipws비트가 설정 해제되지 않는 한(예: std::noskipws 를 사용하여), sentry는 선행 공백 문자들을 읽고 버림. 이 작업 중 입력 스트림 끝에 도달하면eofbit와failbit가 모두 설정되고 입력이 수행되지 않음. -
I/O 매니퓰레이터
std::ws
가 공백을 소비하는 동안 스트림 끝에 도달하는 경우(그러나 형식화된 입력 sentry와 달리 이 경우
failbit를 설정하지 않음). - 비형식화된 입력 함수들 basic_istream::read , basic_istream::get , basic_istream::peek , basic_istream::readsome , basic_istream::ignore , 및 basic_istream::getline 이 스트림 끝에 도달할 때.
- 입력 버림 함수 basic_istream::ignore 이 지정된 구분 문자에 도달하기 전에 스트림 끝에 도달하는 경우.
- 즉시 입력 함수 basic_istream::readsome 이 basic_streambuf::in_avail 가 - 1 을 반환하는 경우.
다음 함수들은 부작용으로
eofbit
을 지웁니다:
거의 모든 상황에서 eofbit가 설정되면 failbit도 함께 설정된다는 점에 유의하십시오.
failbit
failbit는 다음과 같은 표준 라이브러리 함수들에 의해 설정됩니다:
-
basic_istream::sentry
생성자는 모든 입력 함수 시작 시 실행되며, 스트림에
eofbit또는badbit이 이미 설정되어 있거나, 선행 공백 문자를 제거하는 동안 스트림 끝에 도달한 경우 실패합니다. - basic_ostream::sentry 생성자는 모든 출력 함수 시작 시 실행되며, 구현에 정의된 조건에서 실패합니다.
- operator>> (std::basic_string<>) 는 입력 스트림에서 문자를 추출하지 못한 경우 실패합니다.
- operator>> (std::complex<>) 는 유효한 복소수를 추출하지 못한 경우 실패합니다.
- 문자 배열 및 단일 문자 오버로드 operator>> 는 문자를 전혀 추출하지 못한 경우 실패합니다.
- 스트림 버퍼 오버로드 basic_istream::operator>> 는 스트림 버퍼 인자가 널 포인터이거나 스트림 버퍼에 문자가 삽입되지 않은 경우 실패합니다.
- 스트림 버퍼 오버로드 basic_ostream::operator<< 는 문자를 삽입하지 못한 경우 실패합니다.
- operator>> (std::bitset<>) 는 입력 스트림에서 문자를 추출하지 못한 경우 실패합니다.
- std::getline 는 문자를 추출하지 못하거나 입력 스트림에서 basic_string::max_size 개의 문자를 추출한 경우 실패합니다.
- 숫자, 포인터, 불리언 입력 오버로드 basic_istream::operator>> (기술적으로는 호출하는 num_get::get 의 오버로드)는 입력을 유효한 값으로 파싱할 수 없거나 파싱된 값이 대상 타입에 맞지 않는 경우 실패합니다.
- 시간 입력 조작자 std::get_time (기술적으로 호출하는 time_get::get )는 주어진 형식 문자열에 따라 시간 값을 명확하게 파싱할 수 없는 경우 실패합니다.
- 통화 입력 조작자 std::get_money (기술적으로 호출하는 money_get::get )는 로캘 규칙에 따라 통화 값을 명확하게 파싱할 수 없는 경우 실패합니다.
- 모든 RandomNumberEngine s 의 추출 연산자는 잘못된 입력이 발생한 경우 실패합니다.
- 모든 RandomNumberDistribution s 의 추출 연산자는 잘못된 입력이 발생한 경우 실패합니다.
- 비형식화 입력 함수 basic_istream::get 는 문자를 추출하지 못한 경우 실패합니다.
- basic_istream::getline 는 문자를 추출하지 못하거나, 구분자를 만나지 않은 채 제공된 버퍼를 채우거나, 제공된 버퍼 크기가 1보다 작은 경우 실패합니다.
- basic_istream::read 는 요청된 모든 문자를 추출하기 전에 입력 스트림에서 파일 끝 조건이 발생한 경우 실패합니다.
- basic_istream::seekg 는 실패 시
- basic_ostream::tellp 는 실패 시
- 파일명 인자를 받는 std::basic_fstream , std::basic_ifstream , 및 std::basic_ofstream 의 생성자는 파일을 열 수 없는 경우 실패합니다.
- basic_fstream::open , basic_ifstream::open , 및 basic_ofstream::open 는 파일을 열 수 없는 경우 실패합니다.
- basic_fstream::close , basic_ifstream::close , 및 basic_ofstream::close 는 파일을 닫을 수 없는 경우 실패합니다.
badbit
badbit는 다음과 같은 표준 라이브러리 함수들에 의해 설정됩니다:
- basic_ostream::put 어떤 이유로든 출력 스트림에 문자를 삽입하는 데 실패할 경우.
- basic_ostream::write 어떤 이유로든 출력 스트림에 문자를 삽입하는 데 실패할 경우.
- 서식화된 출력 함수 operator<< , std::put_money , 그리고 std::put_time 이 출력을 완료하기 전에 출력 스트림의 끝에 도달할 경우.
-
basic_ios::init
이
rdbuf()에 널 포인터를 사용하여 스트림을 초기화하도록 호출될 때. -
basic_istream::putback
과
basic_istream::unget
이 널
rdbuf()를 가진 스트림에서 호출될 때. - basic_ostream::operator<< (basic_streambuf*) 에 널 포인터가 인수로 전달될 때.
- basic_istream::putback 과 basic_istream::unget 이 rdbuf ( ) - > sputbackc ( ) 또는 rdbuf ( ) - > sungetc ( ) 이 traits :: eof ( ) 를 반환할 경우.
-
basic_istream::sync
,
basic_ostream::flush
, 그리고
unitbuf출력 스트림의 모든 출력 함수가 rdbuf ( ) - > pubsync ( ) 이 - 1 를 반환할 경우. -
연결된 스트림 버퍼의 어떤 멤버 함수(예:
sbumpc(),xsputn(),sgetc(),overflow()등)에서 예외가 발생할 경우 모든 스트림 I/O 함수. - ios_base::iword 과 ios_base::pword 가 실패할 경우(예: 메모리 할당 실패).
예제
|
이 섹션은 불완전합니다
이유: 예제가 없음 |
참고 항목
다음 표는 모든 가능한 ios_base::iostate 플래그 조합에 대한 basic_ios 접근자( good() , fail() 등)의 값을 보여줍니다:
| ios_base::iostate 플래그 |
basic_ios
접근자
|
|||||||
eofbit
|
failbit
|
badbit
|
good() | fail() | bad() | eof() | operator bool | operator! |
| false | false | false | true | false | false | false | true | false |
| 거짓 | 거짓 | 참 | 거짓 | 참 | 참 | 거짓 | 거짓 | 참 |
| 거짓 | 참 | 거짓 | 거짓 | 참 | 거짓 | 거짓 | 거짓 | 참 |
| 거짓 | 참 | 참 | 거짓 | 참 | 참 | 거짓 | 거짓 | 참 |
| 참 | 거짓 | 거짓 | 거짓 | 거짓 | 거짓 | 참 | 참 | 거짓 |
| 참 | 거짓 | 참 | 거짓 | 참 | 참 | 참 | 거짓 | 참 |
| 참 | 참 | 거짓 | 거짓 | 참 | 거짓 | 참 | 거짓 | 참 |
| 참 | 참 | 참 | 거짓 | 참 | 참 | 참 | 거짓 | 참 |
|
상태 플래그를 반환합니다
(
std::basic_ios<CharT,Traits>
의 public 멤버 함수)
|
|
|
상태 플래그를 설정합니다
(
std::basic_ios<CharT,Traits>
의 public 멤버 함수)
|
|
|
상태 플래그를 수정합니다
(
std::basic_ios<CharT,Traits>
의 public 멤버 함수)
|