gpt4 book ai didi

c++ - 如何通过用户提示退出 switch case 实现?

转载 作者:行者123 更新时间:2023-11-30 03:41:20 24 4
gpt4 key购买 nike

我有一个基本的计算程序,我希望当用户想在他的第一个输入中退出程序而不进行任何计算时,程序就会退出。但是在这里,如果用户在他的第一个输入中输入 q for quit/exit,程序就会进入无限循环。有没有什么办法可以为用户提供一些单一的退出键,在运行时随时(由用户)输入这些退出键只会退出程序。最里面的 while 循环工作正常,除非最外面的循环停止工作。

#include "std_lib_facilities.h"
int main() {
double x = 0, y = 0, result = 0;
string operation = " ";
char op = ' ';
cout << "\nInput (e.g. -> 5*6)\nPress q to quit.\n";
while(1) {
cin >> x >> op >> y;
switch(op) {
case '+':
result = x + y;
operation = "sum";
break;
//Other switch cases
case 'q':
exit(1);
default:
cout << "Invalid input.";
break;
}
cout << "The " << operation << " of " << x << " and " << y << " is "
<< result << ".\n\n"
<< "If you have another input, press any character to continue..\n"
<< "Else press q to quit.\n";
// exit or continue program loop
while(cin >> op) {
if(op=='q' || op=='Q')
exit(1);
else
cout << "Provide next set of inputs.\n";
break;
}
}
}

最佳答案

如果用户在第一次尝试时输入q,那么流将尝试将该值读入x,这是一个double,它将fail 并且流的状态将设置为fail,之后不会成功执行其他 I/O 操作并且循环将无限运行。

如果上一个操作失败,您可能会在要求用户继续或退出并清除流状态之前检查流的状态:

    if(cin.fail())//check if the previous read operation failed
cin.clear();//clear the stream state,so the next cin will read what is in the buffer
while(cin >> op)
...//your other code

关于c++ - 如何通过用户提示退出 switch case 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37405439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com