Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;验证同一行上两个的第一个输入_C++_Cin - Fatal编程技术网

C++ C++;验证同一行上两个的第一个输入

C++ C++;验证同一行上两个的第一个输入,c++,cin,C++,Cin,为什么它不能按看起来应该的方式工作?如果用户输入“yes please”或“yes”,程序应该会跳出它所处的任何循环,但事实并非如此。控制台只是打印一个换行符并等待。我做错了什么?读取第二个字符串b不是可选的,因此如果您输入“yes”或任何其他单个单词,程序将阻止您输入第二个 操作流程如下所示: 等待a 等待第二个单词进入b 将第一个单词与“yes” 请注意,只有在读取b之后,才会开始比较 如果要退出简单“yes”,请阅读a,将其与“yes”进行比较,必要时中断循环,然后阅读b: strin

为什么它不能按看起来应该的方式工作?如果用户输入“yes please”或“yes”,程序应该会跳出它所处的任何循环,但事实并非如此。控制台只是打印一个换行符并等待。我做错了什么?

读取第二个字符串
b
不是可选的,因此如果您输入
“yes”
或任何其他单个单词,程序将阻止您输入第二个

操作流程如下所示:

  • 等待
    a
  • 等待第二个单词进入
    b
  • 将第一个单词与
    “yes”
请注意,只有在读取
b
之后,才会开始比较

如果要退出简单
“yes”
,请阅读
a
,将其与
“yes”
进行比较,必要时中断循环,然后阅读
b

string a, b;
cin >> a >> b;
if (a == "yes") break;
...
现在,如果循环没有退出,则您同时拥有
a
b
,并且您知道
a
当前不等于
“yes”

cin >> a;
if (a == "yes") break;
cin >> b;
正确的做法如下。当同时输入a和b时,b没有值

string a, b;
cin >> a >> b;
if (a == "yes") break;
...

b仍然“在同一条线上”

提示:你可以打开一罐蠕虫,在这里使用a。你永远不知道,它可能只是工作。如果你只输入“是”,程序将等待。如果您输入“yes please”,则不应等待。寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现此问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。谢谢你的解释
string a, b;
cin >> a;
if (a == "yes") 
{
break;
}
cin >> b;