Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ С\С++ _ переопределенный ввод

Автор: voipp 16.2.2010, 22:13

значит пишу я переопределенный оператор ввода :

istream& operator >> (istream& s, CTable& t) {
  if ((t.width == 0) || (t.height == 0)) return s;
  for (unsigned i = 0; i < t.height; i++)
    for (unsigned j = 0; j < t.width; j++) {
      cout << endl << "Enter item[" << i << ", " << j << "] = ";
      s >> t.items[i][j];
    }
  if (s.peek() == '\n') s.ignore();
  return s;
};


в main я вызываю именно этот оператор а вслед за ним пишу оператор ввода уже стандартный(для заполнения целочисленной переменной).Переопределенный operator>> (istream& s, CTable& t) пропускается и ввод переходит на operator>>(int).Почему такое происходит?Икак от этого избавиться?

Автор: kwisp 17.2.2010, 12:09

Цитата(voipp @ 16.2.2010, 22:13) *
if ((t.width == 0) || (t.height == 0)) return s;

может поэтому

Автор: voipp 22.2.2010, 12:46

проблема оказалась в том что я забыл задать размер вектора на ненулевой

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)