C++新手求助:运算符匹配失败及表达式类型错误问题
C++新手错误修复方案
错误原因及解决方法
错误1、2:
no operator ">" / "<" matches these operands
你将Answer定义为string类型,C++不支持字符串与整数直接进行大小比较,没有对应的运算符实现。解决方法是把Answer的类型改为整数类型int。错误3:
Expression must have bool type(or be convertable to bool)
这里存在两个问题:一是误用了赋值运算符=(作用是把19赋值给Answer),而非用于判断相等的==;二是字符串和整数无法直接比较。修正时先将Answer改为int类型,再把=替换为==。
修正后的完整代码
#include <iostream> using namespace std; int main() { cout << "What is 9 + 10?\n"; cout << "Answer:"; int Answer; // 改为整数类型 cin >> Answer; if (Answer > 19) { cout << "Too high!"; } if (Answer < 19) { cout << "Too low!"; } if (Answer == 19) // 替换为相等比较运算符 { cout << "CORRECT!"; } return 0; }
补充说明:代码开头必须添加#include <iostream>和using namespace std;(或者使用std::cout、std::cin的完整写法),否则编译器会找不到cout和cin的定义。
内容的提问来源于stack exchange,提问作者default
相关产品推荐
相关产品推荐

