모두의 코드
C++ 레퍼런스 - ios::fail 함수

작성일 : 2011-10-23 이 글은 7138 번 읽혔습니다.

아직 C++ 에 친숙하지 않다면 씹어먹는 C++ 은 어때요?

ios::fail

bool fail() const;

failbit 이나 badbit 이 설정되어 있는지 확인한다. 이 함수는 failbit 이나 badbit 중 어느 하나가 설정(set) 되어 있으면 true 를 리턴한다. 이 플래그들은 입력 작업 시 파일 끝(End Of File) 에 도달하기 전에 오류가 발생할 시 설정되는 플래그 들이다.

failbit 은 보통 입력 작업 시 내부적인 논리 오류로 인해 발생되는 오류, 예컨대 입력 받기를 기대하였던 값이 오지 않을 때 (파일에 접근할 수 없다던지..) 설정되므로, failbit 이 설정되더라도 스트림의 다른 입출력 작업들은 가능하다. 반면에 badbit 의 경우 스트림의 완전성(integrity)이 깨질 때, 쉽게 말하면 하나의 스트림에 동시의 두 개의 다른 작업이 진행될 때 발생되는 것이므로 badbit 이 설정되면 다른 입출력 작업들은 할 수 없게 된다. badbitbad 함수를 통해 상태를 독립적으로 확인할 수 있다.

이 함수는 operator! 와 동일하게 작동한다.

인자

없다

리턴값

badbitfailbit 가 설정되어 있다면 true 를 리턴한다. 아니면 false

템플릿 멤버 선언

(basic_ios<charT, traits>)bool fail() const;

실행 예제

/*

cin 으로 int 형 변수를 입력 받는데, 그 외의 타입의 값이 오면 failbit 가 설정되어
입력을 중지한다.

*/
#include <iostream>
using namespace std;

int main() {
  int i;
  while (!cin.fail()) {
    cin >> i;
    cout << "What you typed : " << i << endl;
  }

  return 0;
}

실행 결과

참고 자료

  • ios_base::iostate : 스트림 상태 플래그들을 위한 타입

  • ios::bad : badbit 이 설정되어 있는지 확인한다.

  • ios::good: 스트림에 어떠한 오류 플래그도 설정되지 않았는지 확인한다.

  • ios::eof : eofbit 이 설정되어 있는지 확인한다.

  • ios::rdstate : 오류 상태 플래그를 얻는다.

  • ios::setstate : 오류 상태 플래그를 설정한다.

  • ios::clear : 오류 상태 플래그를 설정한다.

첫 댓글을 달아주세요!
프로필 사진 없음
강좌에 관련 없이 궁금한 내용은 여기를 사용해주세요

    댓글을 불러오는 중입니다..