int y_or_n(ostream& to, istream& from) /* "to", получает отклик из "from" */ { ostream* old = from.tie(&to); for (;;) { cout << "наберите Y или N: "; char ch="0;" if (!cin.get(ch)) return 0; if (ch !="\n" ) { // пропускает остаток строки char ch2="0;" while (cin.get(ch2) && ch2 !="\n" ) ; } switch (ch) { case 'Y': case 'y': case '\n': from.tie(old); // восстанавливает старый tie return 1; case 'N': case 'n': from.tie(old); // восстанавливает старый tie return 0; default: cout << "извините, попробуйте еще раз: "; } } }