C ++ 오류 처리의 일반적인 CIN

그렇게 비트 cin.fail () 함수를 학습, CIN와 입력의 정당성을 확인하는 프로그램을 작성 할 때, 방법은 몇 가지 유사한 기능을 배울 수 있습니다.

CIN 객체 데이터 부재 설명한 플로우 상태를 포함한다. eofbit, badbit 및 failbit : 스트림 상태는 세 개의 플래그가 있습니다.

작업이 파일 CIN, eofbit 세트의 끝에 도달하면.

흐름이 깨진, badbit 세트. 예를 들어 : 파일 액세스, 작성 쓰기 금지 된 디스크를 읽으려고, 남은 공간이 너무 부족하여, 쓰기 및입니다.

작업이 문자를 읽을 것으로 예상 할 수없는 CIN failbit 1로 설정됩니다. 예를 들어 정수 변수의 입력이, 상기 입력 failbit 1 개 문자로 설정한다. I / O 실패 failbit가 설정 될 수 있습니다합니다.

세 개의 상태 비트는 모든 최선 0 인 경우.

몇 가지 검사 또는 유동에있어서의 상태를 변경.

  • EOF ()

TRUE를 반환합니다 eofbit 한 경우.

사용할 수있는 cin.eof()파일을 읽을 지 여부를 결정합니다.

  • 좋은()

흐름이 이용 될 수있는 경우, 즉 세 개의 상태 비트는 0, 반품 사실이다.

cin.good()때 사실, while(cin >> input)그것은 true를 반환합니다.

  • 나쁜()

true를 돌려줍니다 badbit 한 경우.

  • 불합격()

failbit 또는 badbit 1 개 true를 돌려줍니다. 그래서 나쁜와 (), 실제 같은 상황을 반환 문자 형식이 일치는 true를 반환 들어갑니다.

입력을 확인하는 데 사용할 수 있습니다 것은 합법적이다.

int a;
cin >> a;
if(cin.fail()) {
    cout << "Input error" << endl;
}

참고 : 입력이 법적으로하지 않으면 자동으로 재설정되지 failbit, 다시 입력합니다.

  • rdstate ()

반환 상태를 흐른다.

  • 분명 (iostate들)

이 상태 비트를 변경하지 않습니다. 따라서 명확한 (iostate들)를 사용하는 데 필요한 상태 비트를 재설정합니다. 0 기본값입니다 s의 경우이 방법은 모든 상태 비트가 s로 설정됩니다. 즉 모든 상태 비트가 지워집니다 () 분명하다.

참고

"C ++ 프라이머 플러스"스티븐 토크

C ++ 之 cin.eof, cin.bad, cin.good, cin.fail, cin.clear

추천

출처www.cnblogs.com/wulitaotao/p/11816421.html