Namespaces
Variants

std::ios_base:: iostate

From cppreference.net
typedef /*implementation defined*/ iostate ;
static constexpr iostate goodbit = 0 ;
static constexpr iostate badbit = /* implementation defined */

static constexpr iostate failbit = /* implementation defined */

static constexpr iostate eofbit = /* 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는 다음과 같은 표준 라이브러리 함수들에 의해 설정됩니다:

badbit

badbit는 다음과 같은 표준 라이브러리 함수들에 의해 설정됩니다:

예제

참고 항목

다음 표는 모든 가능한 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 멤버 함수)