#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
, не должен ли он быть признаком поврежденного потока?