Неожиданное возвращаемое значение объекта istream при использовании rdbuf (NULL) - PullRequest
0 голосов
/ 26 января 2019
#include<iostream>

using namespace std;

int main()
{
    //RETURN VALUE IS NULL AS CIN IS SET TO A BUFFER POINTED BY THE RDBUF'S ARGUMENT
    if(cin.rdbuf(NULL)==NULL)     
    {
        cout<<cin.rdstate()<<endl;
    }

    return 0;
}

ВЫХОД: 1

При выполнении этого кода я обнаружил, что возвращаемое значение функции rdbuf со связанным объектом istream равно NULL, в то время каквозвращаемое значение rdstate равно 1 , что означает, что failbit был установлен, где, как я ожидал, будет установлен badbit , а возвращаемое значение будет 4 .

Когда объект istream связан с NULL, не должен ли он быть признаком поврежденного потока?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...