Каждая строка моего файла состоит из неизвестного числа целых чисел, разделенных пробелами. Я хотел бы читать в каждой строке как вектор этих целых чисел.Чтение в неизвестном числе целых чисел, разделенных пробелами на один вектор на строку
Вот пример такого файла:
11 3 0 1
4 5 0 3
2 3 4 1
23 4 25 15 11
0 2 6 7 10
5 6 2
1
11
я был в состоянии прочитать в небольших объемах данных, успешно используя следующий метод (Обратите внимание, что outer_layers вектор, который содержит эти векторы Я пытаясь заполнить):
for (int i = 0; i < outer_layers.size(); i++)
{
while (in >> temp_num)
{
outer_layers[i].inner_layer.push_back(temp_num);
if (in.peek() == '\n')
break;
}
}
Однако, когда я пытаюсь читать большие объемы данных, иногда прочтет в две строках под одним вектором. В одном из файлов, из 24 строк, он дважды читал два лайнера, поэтому последние два вектора не содержали никаких данных.
Я не могу обернуть вокруг себя голову. Любые идеи, что я делаю неправильно?
EDIT: Кое-что интересное я заметил, в некоторых строках файла смутьян заключается в следующем:
Скажем, есть три линии.
23 42 1 5
1 0 5 10
2 3 11
Line # 1 читает просто отлично, как 23 42 1 5
; однако строки # 2 и # 3 считываются вместе как 1 0 5 10 2 3 11
.
В Блокноте ++ они выглядят просто отлично, каждый на своих линиях. Тем не менее, в Блокноте, то они выглядят так:
23 42 1 51 0 5 10 2 3 11
Если вы заметили, то 5
(последнее число в строке # 1) и 1
(первое целое число от 2 строки #) не отделены друг от друга пробелами; однако 10
и 2
разделены пробелом.
Я заметил это поведение в любых строках с двойным считыванием. Если они разделены пробелом, то они оба читаются. Не знаете, почему это происходит, учитывая, что в Notepad ++ должен быть новый символ строки, чтобы отображать отдельные строки, правильно?
Спасибо. Он работал очень хорошо. Все еще интересно, что было не так с этим пространством и не было пробелов между строками (объяснение в моем редактировании). –
@Noobacode Я не уверен, что вы имели в виду, но выглядит как некоторые проблемы с CR и LF, как правило, происходит при сохранении текстовых файлов в Linux и использовании в Windows или наоборот – P0W
Хм, это может быть так. Файлы были сохранены на Mac OS. Благодаря! –