Что означает возвращаемое значение rdstate ()?

istream& Read(istream &is)
{
    std::string buf;
    while (is >> buf)       
    {   
        cout << is.eofbit << " " << is.failbit << " " << is.badbit << endl;
        cout << is.rdstate() << endl;
        cout << buf << endl;
    }
    cout << is.eofbit << " " << is.failbit << " " << is.badbit << endl;
    cout << is.rdstate() << endl;
    is.clear();
    cout << is.eofbit << " " << is.failbit << " " << is.badbit << endl;
    cout << is.rdstate() << endl;
    return is;
}

Если я введу нормальные символы, такие как «тест», вывод1 2 4 0.
Затем я набираю CTRL + Z (окна), вывод1 2 4 3 1 2 4 0.

Вопрос: 1. что делаетrdstate() Возвращаемое значение означает? (Почему выводится 3, а не 2? Не 1?)

Почему неis.eofbitа такжеis.failbit изменить после того, как я набрал CTRL + Z? (КакУчебник по С ++ 5-й Эдитон говорит, что достижение конца файла устанавливает как eofbit, так и failbit)

Ответы на вопрос(2)

Ваш ответ на вопрос