似乎多余的使用 cin 作为条件与 if,而
Seems redundant use of cin as a condition with if, while
我得到了一个对我来说似乎多余的代码:
char c;
cin>>c;
if(cin&&c=='n')
//do something
我不明白在if中引入cin的价值,它不是总是具有真正的价值吗,因为我从未遇到过任何未构造此istream对象的情况(以我有限的经验(。
同样,我也看到了这个:
if(cin)
请纠正我哪里出错了。现在人们不会发布流中的错误部分,因为我已经知道了,主要部分是除了失败之外,流何时失败ios_base::初始化
std::cin
是std::basic_istream<char>
的一个实例。由于它是在条件的上下文中使用的,因此我们对它bool
转换运算符感兴趣。从 http://en.cppreference.com/w/cpp/io/basic_ios/operator_bool :
std::basic_ios::运算符布尔值
如果流没有错误并且已准备好执行 I/O 操作,则返回 true。具体来说,返回 !fail((
从文档中可以清楚地看出,if(cin)
旨在检查cin
是否有任何错误。更准确地说,它是在说"如果cin
在上次操作中没有遇到错误"。
if(cin&&c=='n')
中的条件遵循相同的主体,但也检查提供的输入流是否n
。换句话说,"如果cin
没有遇到错误并返回字符n
"。
相关文章:
- 无论条件是否为true,if总是在c++中执行
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 将按位if条件转换为普通if条件
- 为什么简单的算术减法在"if"条件下不起作用?
- 如果条件不相关,我应该更喜欢两个 if 语句而不是 if-else 语句吗?
- 为什么这个if(s[j]==s[i] && i>0)条件不适用于这个[{()}]
- 在 if 语句中使用 GetKeyState 时,它会跳过条件
- 如何改进一堆在已知值范围内评估变量的 else-if 条件?
- C++ 中的"if"语句不会从左到右计算条件
- 当我的 if 条件计算结果为 false 时,我的 else 块将不会执行
- C++ GUI 条件 if 语句始终为真
- 条件if中类成员的作用域
- 将数组成员与嵌套循环进行比较,计算满足条件(if)的次数
- 子句内多个条件"if"求值顺序
- 如何在c++中循环遍历多个条件IF语句
- 紧凑的多条件if语句
- 智能指针作为条件:if (p)和if (p.get())是等价的
- 哪一个更快?函数调用或条件if语句
- 优化条件"if (m == 0 || n == 0)"的方法
- C/C++多条件If语句