Namespaces
Variants

std::basic_ios<CharT,Traits>:: clear

From cppreference.net

스트림 오류 상태 플래그를 state 값으로 설정합니다. 기본적으로는 std::ios_base::goodbit 을 할당하여 모든 오류 상태 플래그를 지우는 효과를 가집니다.

만약 rdbuf() 가 널 포인터인 경우(즉, 연결된 스트림 버퍼가 없는 경우), state | std:: ios_base :: badbit 가 할당됩니다.

목차

매개변수

state - 새로운 오류 상태 플래그 설정. 다음 상수들의 조합일 수 있습니다:
상수 설명
goodbit 오류 없음
badbit 복구 불가능한 스트림 오류
failbit 입출력 연산 실패 (형식화 또는 추출 오류)
eofbit 연결된 입력 시퀀스가 파일 끝에 도달함

반환값

(없음)

예외

새로운 오류 상태에 exceptions() 마스크에 포함된 비트도 포함되어 있으면, failure 타입의 예외를 발생시킵니다.

예제

clear() 인수 없이 사용하면 예상치 못한 입력 후 failbit 을 해제하는 데 사용할 수 있습니다; std:: cin . putback ( c ) 에 대해서는 ungetc 을 참조하십시오.

#include <iostream>
#include <string>
int main()
{
    for (char c : {'\n', '4', '1', '.', '3', '\n', 'Z', 'Y', 'X'})
        std::cin.putback(c); // emulate user's input (not portable: see ungetc Notes)
    double n;
    while (std::cout << "Please, enter a number: " && !(std::cin >> n))
    {
        std::cin.clear();
        std::string line;
        std::getline(std::cin, line);
        std::cout << line << "\nI am sorry, but '" << line << "' is not a number\n";
    }
    std::cout << n << "\nThank you for entering the number " << n << '\n';
}

출력:

Please, enter a number: XYZ
I am sorry, but 'XYZ' is not a number
Please, enter a number: 3.14
Thank you for entering the number 3.14

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 412 C++98 현재 오류 상태에
exceptions() 마스크에 포함된 비트가
포함된 경우 예외가 발생함
새로운 오류 상태를
확인하도록 변경

참고 항목

상태 플래그 설정
(public member function)
상태 플래그 반환
(public member function)