我有一个系统,用户可以根据需要输入尽可能多的输入并进行一些计算 .
以下是实现此任务的主循环:
int main() {
char op;
while(op != 'x'){
cout << "Please select: " << endl;
cout << "1 ---> A" << endl;
cout << "2 ---> B" << endl;
cout << "3 ---> C " << endl;
cout << "4 ---> D " << endl;
cout << "5 ---> Calculate" << endl;
cout << "x ---> Exit" << endl;
op = std::getchar();
switch(op){
case '1':
cout<<"1";
break;
case '2':
cout<<"2";
break;
case '3':
cout<<"3";
break;
case '4':
cout<<"4";
break;
case '5':
cout<<"5";
break;
case 'x':
return 0;
default:
continue;
}
}
return 0;
}
但是,在控制台中,我已经看过cout语句两次而不是一次 . 示例控制台如下所示:
Please select:
1 ---> A
2 ---> B
3 ---> C
4 ---> D
5 ---> Calculate
x ---> Exit
1
1Please select:
1 ---> A
2 ---> B
3 ---> C
4 ---> D
5 ---> Calculate
x ---> Exit
Please select:
1 ---> A
2 ---> B
3 ---> C
4 ---> D
5 ---> Calculate
x ---> Exit
关于如何在用户选择后只显示一次cout语句的任何想法?
2 回答
只是看看你的代码,你可能应该在阅读
char
之后放一个"endline"你也可能不需要输出用户的回复,除非你要说“你输入1”之类的东西 . 由于您的选项在用户输入他们的选择之前列出,您将看到选项,然后他们很好地输入他们的选择,然后while循环将再次显示选项 .
看起来你之后输入流中仍然有一些字符
添加一行以忽略输入流中的其余行 .