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
Post a Comment