string a, b;
cin >> a >> b;
if (a == "yes") break;
...
为什么它看起来不起作用?如果用户输入"是,请"或"是"程序应该突破它所处的循环,但事实并非如此。控制台只打印换行并等待。我在这里做错了什么?
答案 0 :(得分:2)
第二个字符串b
的读取不是可选的,因此如果您输入"yes"
或任何其他单个字,程序将阻止您进入第二个字
操作流程如下:
a
b
"yes"
请注意,只有在b
的读数结束后才会开始比较。
如果您想在简单的"yes"
上退出循环,请阅读a
,将其与"yes"
进行比较,必要时中断,然后阅读b
:
cin >> a;
if (a == "yes") break;
cin >> b;
现在,如果循环没有退出,则同时拥有a
和b
,并且您知道a
不等于"yes"
。
答案 1 :(得分:0)
目前:
string a, b;
cin >> a >> b;
if (a == "yes") break;
...
正确的做法如下。当你同时收到a和b时,b没有价值。
string a, b;
cin >> a;
if (a == "yes")
{
break;
}
cin >> b;
b仍将“在同一条线上”