在DO-WHILE循环中==和!=运算符“不匹配”
#include <iostream>
using namespace std;
int main()
{
string password = "gang";
int input;
cin >> input;
do{
cout<<"Enter password here: "<<endl;
if(input == password){
break;
}
else{
cout<<"Password incorrect"<<endl;
}
}
while(input != password);
cout<<"Password correct"<<endl;
return 0;
}
错误:
C:\Users\New User\Desktop\c++\666666666666658uttu\main.cpp|18|error: no match for 'operator==' (operand types are 'int' and 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}')|
答案 0 :(得分:4)
因为您正在将字符串与int进行比较
答案 1 :(得分:2)
您正在以int形式读取输入,但会将其与字符串进行比较。
执行此操作
#include <iostream>
using namespace std;
int main()
{
string password = "gang";
string input; // <<<<<<HERE
cin >> input;
do{
cout<<"Enter password here: "<<endl;
if(input == password){
break;
}
else{
cout<<"Password incorrect"<<endl;
}
}
while(input != password);
cout<<"Password correct"<<endl;
return 0;
}
答案 2 :(得分:1)
该程序在任何情况下都是错误的。:)
变量p3
被声明为类型Player
。
input
然后,您尝试将输入的整数与类型为int
的对象进行比较。
int input;
此外,循环是无限的,因为即使变量std::string
被声明为类型string password = "gang";
// ...
if(input == password){
,也不会在循环内更改。
此外,您还应该添加标题input
。
程序可以按照以下方式显示
std::string