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 << "извините, попробуйте еще раз: "; } } }