gpt4 book ai didi

c++ - if (cin >> x) 和 if (!(cin >> x).fail()) 有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 20:41:33 27 4
gpt4 key购买 nike

这两者有区别吗?我知道一个将流返回到 if 而另一个立即返回一个 bool 值,但是它们在功能上有区别还是等价的?

最佳答案

此处表达式 cin >> x 执行可能更新 x 的输入操作,并且作为其表达式结果返回对流的引用,即 。所以 cin 被直接用作条件。这会调用到 bool 值的转换, bool 值的定义使其本身等同于 !cin.fail()(即表达式 cin >> x 作为条件等同于编写 !(cin >> x).fail() 或者,作为逗号表达式,(cin >> x, !cin.fail())

关于c++ - if (cin >> x) 和 if (!(cin >> x).fail()) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20972517/

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