抱歉,忘记了代码
这是错误的代码。 我一直试图让这个工作,但所有逻辑运算符都不起作用。
#include <iostream>
#include <string>
using namespace std;
string repeat;
string repeatnum;
string prompt = "|-[]->";
int main()
{
string entry;
bool Running = true;
while(Running == true)
{
cout << "\n";
cout << prompt;
cin >> entry;
if(entry == "Exit") return 0;
if(entry == "Help") cout << "HELP:\nThsi is a simple program, try an input";
if(entry == "ChangePrompt")
{
cout << "What do you want to change the prompt to?: ";
cin >> prompt;
}
if(entry == "Repeat" || "repeat")
{
cout << "What string do you want to repeat?: ";
cin >> repeat;
cout << "How many times do you want to repeat" << repeat << "(1-9)?: ";
cin >> repeatnum;
if(repeatnum > 0){}
}
}
char f;
cin >> f;
return 0;
}
这是我得到的错误。
Error:
C:\Users\Packard Bell\Desktop\test\main.cpp||In function 'int main()':|
C:\Users\Packard Bell\Desktop\test\main.cpp|29|error: no match for 'operator>' in 'repeatnum > 0'|
||=== Build finished: 1 errors, 0 warnings ===|
答案 0 :(得分:2)
因为在main.cpp
的第29行,您尝试执行repeatnum > 0
而repeatnum
是一种没有超载operator >
的类型。
答案 1 :(得分:1)
除了repeatnum问题,这段代码没有做你想做的事情
if(entry == "Repeat" || "repeat")
应该是
if(entry == "Repeat" || entry == "repeat")
答案 2 :(得分:0)
现在看到代码之后。 repeatnum是一个字符串。您读取字符串的输入,然后将其与整数进行比较。现在string没有运算符&gt; -defined for integer,所以你需要在比较之前将字符串转换为整数。
atoi(repeatnum.c_str());
或者使用stringstream来完成它。
答案 3 :(得分:0)
根据给定的信息,我只能猜测变量repeatnum
是一个类或结构的对象,您无法直接将其与0
进行比较。如果您定义了repeatnum
的类型,请添加一个重载operator >
的成员函数并正确处理它。
class YourType
{
// Class definition
public:
int operator >( int var )
{
// Code for comparison
// return result
}
};