C++ 通过输入特定字母c+退出循环+;

C++ 通过输入特定字母c+退出循环+;,c++,loops,while-loop,exit,C++,Loops,While Loop,Exit,我知道以前也有人问过类似的问题,但我的有点不同 在我在这里发现的问题中,循环应该在用户按下特定字符或数字等后结束,这样在编写代码时就可以将该字符分配给变量 例如,在循环中输入非负数cin>>a=0)或者如果用户应该输入一些单词,我们把它们保存在变量a中,我们写cin>>a,我们希望循环在他们输入s时结束,我们可以简单地写而(a!=“s”) 但我的问题更难 用户应输入以下变量的值: char操作码;int b;INTE和可选int k 用户应该输入kifoperationcode='m'的值,这样

我知道以前也有人问过类似的问题,但我的有点不同

在我在这里发现的问题中,循环应该在用户按下特定字符或数字等后结束,这样在编写代码时就可以将该字符分配给变量

例如,在循环中输入非负数
cin>>a,而(a>=0)
或者如果用户应该输入一些单词,我们把它们保存在变量a中,我们写
cin>>a
,我们希望循环在他们输入
s
时结束,我们可以简单地写
而(a!=“s”)

但我的问题更难

用户应输入以下变量的值:

char操作码;int b;INTE和可选
int k

用户应该输入
k
if
operationcode='m'
的值,这样我就可以用
if(operationcode='m'){cin>>k}
来处理它了,对吗

当用户按下键:
'e'
时,循环结束

我有一些想法如何做到这一点,但我想确定我是否是对的

第一个是:

int main(){
char operationcode; int b, e, k;
char stop = ' ';

while(stop != 'e')
{
cin>>operationcode>>b>>e;

if(operationcode == 'm') cin>>k;
}
我知道也可以使用
getch()
,但我应该只使用
,而不使用其他任何东西。对于
getch()
我需要
#包括


你能告诉我我的想法是否正确吗?

问题在于你的循环。它检查您甚至没有指定的字符
stop

因此,正确的方法是

while(stop != 'e')
{
  //Not sure why you need 'em here.
  cin>>operationcode>>b>>e;

  if(operationcode == 'm') cin>>k;

 //assign stop here.
 cin>>stop
}

您应该使用
operationcode!=停止
作为while循环的条件,否则我看不出循环将如何停止

此外,如果使用do while循环,则更有意义:

int main(){
    char operationcode; int b, e, k;
    char stop = 'x';

    do {
        cin>>operationcode>>b>>e;

        if(operationcode == 'm') cin>>k;

        cout << "code:" << operationcode << "b:" << b << "e:" << e << "k:" << k << endl;
    } while(operationcode != stop);

    return 0;
}

您是否在循环中的任何位置分配过
stop
?好的,如果我正确理解了您的解决方案,那么取值
e
(或
x
)的变量是
operationcode
?因为它是我们在给定行中为其赋值的第一个变量。是的,这是正确的,有了这一行
cin>>operationcode>>b>>e
,程序将在运行时请求输入,根据空格字符分割整行输入,并相应地设置变量。例如,
x[space][space]0[space]0[space][space][space]0[space]0
operationcode
设置为
x
b和e
设置为0,即使它们有多个空格。(我用[space]表示空格字符)非常感谢你花时间写下答案。我的错误很尴尬。。。
1 2 3 4
>> code:1b:2e:3k:0

m 1 2 3 4
>> code:1b:2e:3k:4

x 0 0 0 0
>> code:xb:0e:0k:0