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

작성일 : 2011-10-23
이 레퍼런스의 모든 내용은 http://www.cplusplus.com/reference/iostream/ 의 내용을 기초로 하여, Microsoft 의 MSDN 과 Bjarne Stroustrup 의 책 <<The C++ Programming Language>> 를 참고로 하여 만들어졌습니다. 이는 또한 저의 개인적인 C++ 능력 향상과 ' 저의 모토인 지식 전파'를 위해 모든 이들에게 공개하도록 하겠습니다.
아직 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;
}

실행 결과

 연관된 함수

프로필 사진 없음
댓글에 글쓴이에게 큰 힘이 됩니다