使用rdbuf(NULL)时istream对象的意外返回值

时间:2019-01-26 20:23:08

标签: c++ io

#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 。< / p>

istream对象与NULL关联时,这不应该是流损坏的迹象吗?

0 个答案:

没有答案