cin >> switch1 tries to read in an integer. If you type d (which can’t be converted to an int, it doesn’t “eat” the bad input so you must clear it manually.
Try adding this to your error case:
cin.clear();
cin.ignore(INT_MAX, '\n');
4
solved C++ keeps on glitching while using switch statement in while loop