C++ 使用istream对象测试条件

C++ 使用istream对象测试条件,c++,C++,我试图使用下面的代码动态读取大量数字,最后是EOF: vector<double> data; double x; while (cin >> x) { data.pushback(x); } 是的,我知道它是用来输入数据的,但我怎么能用它来测试条件。 下面的表达式会发生什么情况: while (cin) or if (cin) cin返回什么?类的对象是stream类,可以将其转换为void*,如果发生错误,返回的值是空指针(该指针隐式转换为bool) 请参

我试图使用下面的代码动态读取大量数字,最后是
EOF

vector<double> data;
double x;
while (cin >> x)
{
    data.pushback(x);
}
是的,我知道它是用来输入数据的,但我怎么能用它来测试条件。
下面的表达式会发生什么情况:

while (cin) or if (cin)
cin
返回什么?

类的对象
是stream
类,可以将其转换为
void*
,如果发生错误,返回的值是空指针(该指针隐式转换为
bool

请参阅以获取参考。

类的对象
是流
类,可以将其强制转换为
void*
,如果发生错误,返回的值是空指针(此指针隐式转换为
bool


<>参见参考文献

我不能说我完全理解它,因为我从来不知道对象是被铸造成指针的,我是C++的新手。但是你的答案让我对发生的事情有了大致的了解。非常有用。谢谢。知道对象是被铸造成指针的类型,我是C++新手。但是你的答案让我对发生的事情有了大致的了解。非常有用。谢谢。SSSSSS::转换为<代码> Value*/Cord>是一个例子。
while (cin) or if (cin)