игнорировать строки
От: Аноним  
Дата: 27.03.10 06:54
Оценка:
Что можно сделать, чтобы при считывании структуры из файла
load_surf(border, "test_surf.txt");
пропускались строки с коментариями после решетки #

void load_surf(std::vector<Frame3D> & f, const std::string & s){
   std::ifstream file(s.c_str());
   std::istream_iterator<Frame3D> is(file), eof;
   std::copy(is, eof, std::back_inserter(f) );
}

std::istream & operator>>(std::istream & s, Frame3D & F) {
  s >> F.A >> F.B >> F.C ;
}


файл приблизительно такой
# test file
# first struct
0.4897724568 -0.2344652410 -0.8316474810
0.2972496329 -0.1392120057 -0.8078393931
0.3212459649 -0.0718329308 -0.8073396581

#second struct
0.4897724568 -0.2344652410 -0.8316474810
...
Re: игнорировать строки
От: _nn_ www.nemerleweb.com
Дата: 28.03.10 08:11
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Что можно сделать, чтобы при считывании структуры из файла
load_surf(border, "test_surf.txt");
пропускались строки с коментариями после решетки #


Можно попробовать через Filter Iterator.

Можно вручную, считывать символ, проверять его и читать дальше или пропускать строку.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: игнорировать строки
От: Кодт Россия  
Дата: 28.03.10 15:08
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Что можно сделать, чтобы при считывании структуры из файла
load_surf(border, "test_surf.txt");
пропускались строки с коментариями после решетки #


Лично я бы исходил из того, что элементы файла — это не одиночные числа, а всё-таки строки с тройками чисел и-или комментариями.
Читал бы каждую строку с помощью getline, затем
— обрезал её по #
— обернул в свой istringstream
— прочитал данные оттуда
— проверил на failbit и сделал соответствующие выводы
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.