string readString(string p)
{
string s;
cout << p;
cin >> s;
return s;
}
int main()
{
string oper = readString("? ");
while (oper != "Q")
{
if (oper == "l")
cout << "load complete" << endl;
else if (oper == "+")
cout << "add complete" << endl;
string oper = readString("? ");
}
}
Run Code Online (Sandbox Code Playgroud)
当我输入时l
,输出是load complete
.但后来我输入+
,它仍然输出load complete
.为什么不输出add complete
?
您正在声明两个名为变量的变量oper
.
int main()
{
string oper = readString("? "); //HERE
while (oper != "Q")
{
string oper = readString("? "); //HERE
}
}
Run Code Online (Sandbox Code Playgroud)
标记的第二行在HERE
当前范围内声明一个新变量,而不是更新包含范围中的现有变量.将其更改为:
oper = readString("? ");
Run Code Online (Sandbox Code Playgroud)