Я это набор данных в .txt
лог-файл:Чтение данных из файла C++
2016-01-17 Red 1 2 2.252016-01-18 blue 3 1 1.34
Я сохранил его в вектор, и код выглядит следующим образом:
while(!logFile.eof()) {
getline(logFile, l.date, ' ');
getline(logFile, l.color, ' ');
logFile >> l.minUsage;
logFile >> l.maxUsage;
logFile >> l.ratio;
logFile.ignore(1000, ' ');
log.push_back(l);
}
тип данных LOG является vector<Record>
где Record
- класс. Я хотел значения выглядеть следующим образом, когда я печатаю его:
2016-01-17 Red 1 2 2.25
2016-01-18 blue 3 1 1.34
, но вместо этого я получил этот результат:
2016-01-17 Red 1 2 2.25
blue 3 1 0 1.34
вторая строка не хранит значение даты от второго набор данных из файла .txt
.
Как отделить 2.252016-01-18
от файла .txt
от 2-х разных записей, таких как 2.25
и 2016-01-18
?
'2016-01-17 Красный 1 2 2.252016-01-18 синий 3 1 1.34' - это действительно ваши данные? Без разделителя? – LogicStuff
Да, без разделителя. данные такие. поэтому я получил эту проблему – procatmer
'getline' получает всю строку, которая, в соответствии с вашим примером, будет читать все данные для записи. Все остальные операции ввода файлов являются спорными. – AndyG