我得到了一段代码本文我很困惑它是如何工作的?该片段开头写道:
您可以通过测试读取结果来检测特定读取或写入操作是否失败。例如,要检查是否从用户读取了有效的整数,您可以执行以下操作:
int x;
if ( cin >> x )
{
cout << "Please enter a valid number" << endl;
}
这是有效的,因为读取操作返回对流的引用。
我知道 cin >> x 操作返回对 cin 的引用,但我仍然对如何评估对标准输入流对象的引用允许您检查输入是否是有效整数感到困惑。
cin
是一个实例istream
模板类。operator >>
作用于此 istream 实例以将输入加载到数据中并返回对此的引用istream
。然后在while
通过调用来测试它的条件cin::operator void*() const
(explicit operator bool() const
在 C++11 中)它调用fail()
函数来测试操作是否成功。这就是为什么您可以在 while 条件下使用此操作
while ( cin >> x)
{
//...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)