gpt4 book ai didi

c++ - if(! (is >> s)) 是什么意思?

转载 作者:搜寻专家 更新时间:2023-10-31 00:27:52 25 4
gpt4 key购买 nike

这是一个重载的>>>运算符函数:

std::istream& operator>>(std::istream& is, std::vector<int>& v){
string s;
if (! (is >> s) )
return is;
...
return is;
}

据我了解,if(! (is >> s)) 没有任何意义,因为终端或控制台将等待键盘或其他来源的输入进入 s。因此 if() 中的条件值最终将是 false。谁能帮忙?

最佳答案

is >> s 尝试从流 is 中读取字符串 s

istreams operator>>() 返回对 is 的引用。

istreamoperator!() 测试流是否处于无效状态。具体来说,如果已设置流的 badbit 或 failbit,它会返回 true

所以,

 if (! (is >> s) )
return is;

在功能上等同于

 is >> s;
if (is.fail()) return is; // is.fail() returns true if failbit or badbit are set

这意味着如果从流中读取字符串失败,该函数将立即返回。请注意,这与到达流的末尾不同。

关于c++ - if(! (is >> s)) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47366378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com