Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > перегрузка >> для массива строк


Автор: Zizulja 26.6.2009, 11:19
Помогите пожалуйста!!!
Необходимо перегрузить операторы ввода и вывода для массива строк!

istream& operator>>(istream& is,Set& s)
{
  Set temp;             
  s=temp;                
  char  c_right[1]="}";       
  char x[100];
  int i=1; 
  is >> x ;
  while (i==1)      
  {if(x!=c_right)
       s.add(x); //функция добавления в массив
    else return is;  
    is >> x ;
  }  
  return is; 
}

Считывает только первый элемент....

Автор: zim22 26.6.2009, 12:02
Цитата(Zizulja @  26.6.2009,  11:19 Найти цитируемый пост)
Считывает только первый элемент....

хвала Господу что хоть его считывает! радуйтесь и этому smile код ужасный...

Автор: Andrew121 26.6.2009, 12:15
Код

std::fstream& operator<< (std::fstream& f, const std::vector<std::string>& s) {
   std::vector<std::string>::const_iterator it = s.begin();
   f << s.size();
   while ( it != s.end() ) {
      f << *it;
      ++it;
   }
   return f;
}

Код

std::fstream& operator>> (std::fstream& f, std::vector<std::string>& s) {
   size_t size = 0;
   std::string temp;
   f >> size;
   while ( size-- ) {
      f >> temp;
      s.push_back(temp);
   }
   return f;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)