Что можно сделать, чтобы при считывании структуры из файла
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
...
Здравствуйте, Аноним, Вы писали:
А>Что можно сделать, чтобы при считывании структуры из файла load_surf(border, "test_surf.txt");
пропускались строки с коментариями после решетки #
Можно попробовать через
Filter Iterator.
Можно вручную, считывать символ, проверять его и читать дальше или пропускать строку.
Здравствуйте, Аноним, Вы писали:
А>Что можно сделать, чтобы при считывании структуры из файла load_surf(border, "test_surf.txt");
пропускались строки с коментариями после решетки #
Лично я бы исходил из того, что элементы файла — это не одиночные числа, а всё-таки строки с тройками чисел и-или комментариями.
Читал бы каждую строку с помощью getline, затем
— обрезал её по #
— обернул в свой istringstream
— прочитал данные оттуда
— проверил на failbit и сделал соответствующие выводы