错误:标准运算符>>中的'运算符=='不匹配

时间:2015-02-05 12:23:49

标签: c++

以下是示例代码应该执行的操作的解释(如教程中所示):

  

作为一个相当人为的例子,我们如何编写一个输出每number from 1 to 100的for循环,但如果用户输入字母q则停止?我们可以使用while循环轻松完成它,并使用我们上面学到的内容使其非常小,但是让它在for循环中进行

当我运行它时,我收到错误"No match for 'operator=='..."。现在我研究了网络和SO本身,但似乎只有高级答案涉及我尚未学习的概念。

我提供了代码以及我研究过的一些链接。在其中一个sites上,它说“是的,基本上在C中,你不能使用==来比较字符串”。在another site上,他们谈到了重载运算符,然后我也进行了研究,但这让我更加困惑。在similar problem here on SO一个人建议使用双引号而不是单引号,但我知道在我的情况下这不起作用,因为我使用了char而不是const char或{{1} }。我跑了它,我的怀疑得到了证实。它给出了一个错误:string

基本上我的问题是:

本教程中使用的此代码有什么问题,以及有哪些替代方法可以防止出错?

"Invalid conversion from const char to char"

1 个答案:

答案 0 :(得分:2)

std::cin >> input;

返回对std::cin的引用,毫无疑问,该引用无法与char进行比较。你可能想要

if (std::cin >> input && input == 'a')

甚至更好,

if (!(std::cin >> input) || input == 'a')
如果阅读input失败,

也会中断。