Getting input from user with Switch C++ -


i have system user can enter many inputs s/he wants , make calculations.

here code achieving task:

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 rest of line 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; } 

system works first input. sample console log looks this:

 please select:  1 ---> 2 ---> b 3 ---> calculate x ---> exit 1 enter time: 2 enter fuel rate: 3 please select:  1 ---> 2 ---> b 3 ---> calculate x ---> exit 2 please select:  1 ---> 2 ---> b 3 ---> calculate x ---> exit 

first user enters operation 1, system asks time , fuel rate. when user enters operation 2, system doesn't ask start, end or pace.

any ideas on how solve this?

i std::getchar() cause of of problems. if change code use:

cin >> op; switch (op) {  //... 

instead of

op = std::getchar();  //remove rest of line input stream int temp; while ( (temp = std::getchar()) != '\n' && temp != eof );  switch(op){ //... 

the program runs fine.


Comments