С задачей, для которой нужно считать данные, не получается. Есть вектор списков, в него и нужно считать. Если встречаем пустую строку, то начинаем заполнять следующий список.
В файле сначала идет поле a объекта класса X, через пробел следует поле b.
Файл.
Цитата: 56 34
78 22
3 9
3 7
89 55
1 5
7 77
Код: #include <vcl>
#include <list>
#include <vector>
#include <iostream>
#include <fstream>
using namespace std;
class X {
public: X(int aa = 1, int bb = 1) : a(aa), b(bb) {}
int a, b;
};
int main() {
vector< list<X> > xl(3, list<X>());
ifstream ifs;
string curr;
ifs.open("file.txt", ios::in);
for (int i = 0; i < xl.size(); ) {
X temp;
ifs >> temp.a >> temp.b;
xl[i].push_back(temp);
// сюда бы нужно вставить условие:
// if (пустая строка) {++i; continue;}
}
ifs.close();
for (int i = 0; i < xl.size(); ++i) {
cout << i+1 << " element." << endl;
for (list<X>::iterator it = xl[i].begin(); it != xl[i].end(); ++it)
cout << it->a << " " << it->b << endl;
cout << endl;
}
system("pause");
return 0;
}