У меня есть неизвестное число INT переменных в текстовом файле, все я знаю, что число переменных будет кратно 6.C++ контейнер Расщепление
Я хочу, чтобы прочитать эти файлы, чтобы контейнер, и разделить их на меньшие контейнеры, где каждый контейнер принимает 6 значений.
Например, если в текстовом файле имеется 30 переменных, я хочу 5 контейнеров, каждый из которых содержит 6 переменных. И они должны быть в том порядке, в котором они находятся в файле, т. Е. В первом контейнере первые шесть значений.
Я прочитал файлы в списке, и вектор на данный момент, и блуждал, какой из них больше подходит. Я прочитал о функции split, но после осмотра я не смог успешно применить его к одной из этих попыток, главным образом потому, что я не знаю, сколько меньших контейнеров мне понадобится
Это мой код до сих пор:
Vector метод
std::vector<int> Ticket;
std::ifstream fin (username + "Ticket.txt");
while (!fin.eof())
{
fin >> num;
Ticket.push_back(num);
}
fin.close();
Ticket.shrink_to_fit();
метод Список
std::list<int> Ticket1;
std::ifstream fin (username + "Ticket.txt");
while (!fin.eof())
{
fin >> num;
Ticket1.push_back(num);
}
fin.close();
В качестве альтернативы, если бы я мог как-то читать 6 значений из файла прямо в меньшие контейнеры и продолжать делать это до конца файла, следовательно, пропускать большой контейнер, который был бы потрясающим.
Оба метода нарушены. Вы не можете использовать 'eof()'. Это никогда не бывает правильным. –
Какова Ваша фактическая структура данных? Имеют ли эти 6 целых чисел разные вещи или шесть одинаковых вещей? Кроме того, что сказал @KerrekSB - правильный способ читать, пока вы не можете, это 'while (fin >> num)', без использования 'eof()'. –
Хорошо, спасибо за отзыв о eof() и @SebastianRedl, это 6 случайных цифр в диапазоне 1 - 66 – user3001499