#include #include #include #include using namespace std; enum coordinate { x,y,z }; /* coordinate read_a_coordinate() { char c; while (true) { cin >> c; switch (c) { case 'x': return x; case 'y': return y; case 'z': return z; } } return x; } */ coordinate read_a_coordinate() { coordinate coordinate_that_will_be_returned; char ch; bool invalid; do { invalid = false; cin >> ch; switch (ch) { case 'x': coordinate_that_will_be_returned = x; break; case 'y': coordinate_that_will_be_returned = y; break; case 'z': coordinate_that_will_be_returned = z; break; default: cout << "This is not valid, please try again: "; invalid = true; } } while (invalid); return coordinate_that_will_be_returned; } void print_a_coordinate(coordinate c) { cout << "You have chosen the "; switch (c) { case x: cout << "x"; break; case y: cout << "y"; break; case z: cout << "z"; break; } cout << " coordinate." << endl; } int main() { coordinate co; cout << "Which coordinate? "; co = read_a_coordinate(); print_a_coordinate(co); return 0; } //(math: p.96)