У меня есть система, в которой пользователь может вводить столько входов, сколько он хочет, и делать некоторые вычисления.Получение ввода от пользователя с помощью Switch C++
Вот код для решения этой задачи:
int main() {
char op = 's';
float time=0, fuel_rate=0, start=0, end=0, pace=0;
while(op != 'x'){
cout << "Please select: " << endl;
cout << "1 ---> A" << endl;
cout << "2 ---> B" << endl;
cout << "3 ---> Calculate" << endl;
cout << "x ---> Exit" << endl;
op = std::getchar();
//remove the rest of the line from input stream
int temp;
while ((temp = std::getchar()) != '\n' && temp != EOF);
switch(op){
case '1':
cout << "Enter time: ";
cin >> time;
cout << "Enter fuel rate: ";
cin >> fuel_rate;
break;
case '2':
cout << "Enter start: ";
cin >> start;
cout << "Enter end: ";
cin >> end;
cout << "Enter pace: ";
cin >> pace;
cout << "Enter fuel rate: ";
cin >> fuel_rate;
break;
case '3':
cout << "Total value";
break;
case 'x':
return 0;
default:
continue;
}
}
return 0;
}
система работает хорошо для первого входа. Пример журнал консоль выглядит следующим образом:
Please select:
1 ---> A
2 ---> B
3 ---> Calculate
x ---> Exit
1
Enter time: 2
Enter fuel rate: 3
Please select:
1 ---> A
2 ---> B
3 ---> Calculate
x ---> Exit
2
Please select:
1 ---> A
2 ---> B
3 ---> Calculate
x ---> Exit
Первого пользователь вводит операция 1, система просит время и расход топлива. Когда пользователь вводит операцию 2, система не запрашивает начало, конец или темп.
Любые идеи о том, как это решить?