crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> переопределенный ввод
voipp
  опции профиля:
сообщение 16.2.2010, 22:13
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 116
Регистрация: 20.10.2009
Из: Msk
Пользователь №: 1166

Спасибо сказали: 0 раз(а)




Репутация:   0  


значит пишу я переопределенный оператор ввода :
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
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


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

может поэтому
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
voipp
  опции профиля:
сообщение 22.2.2010, 12:46
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 116
Регистрация: 20.10.2009
Из: Msk
Пользователь №: 1166

Спасибо сказали: 0 раз(а)




Репутация:   0  


проблема оказалась в том что я забыл задать размер вектора на ненулевой
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 0:23