#include template void Get(T& x, const char* Prompt) { do { if (cin.rdstate() != ios::goodbit) { cin.clear(); int ElementsInBuffer = cin.rdbuf()->in_avail(); cin.ignore(ElementsInBuffer,'\n'); } cout << Prompt; cin >> x; } while (cin.rdstate() != ios::goodbit); } void GetLine(char* string, const char* Prompt, int MaxLength = 0) { cout << Prompt; int ElementsInBuffer = cin.rdbuf()->in_avail(); cin.ignore(ElementsInBuffer,'\n'); cin.getline(string,MaxLength); ElementsInBuffer = cin.rdbuf()->in_avail(); cin.ignore(ElementsInBuffer,'\n'); } void main() { int x = 0; float y = 0; char c; Get(x, "Please enter an number. "); Get(y,"Please enter a fractional number. "); Get(c,"Please enter a character. "); Get(c,"Please enter a character. "); char string[10]; GetLine(string,"Please enter a long string ", 10); cout << x; }