我在.txt
日志文件中有这些数据集:
2016-01-17 Red 1 2 2.252016-01-18 blue 3 1 1.34
我将其存储到vector,代码如下所示:
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);
}
日志的数据类型是
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
? 最佳答案
切勿使用!logFile.eof()
测试输入的结尾,因为它不会在输入的结尾返回true
。改为使用getline
,例如:
while ((getline(logFile, l.date, ' ') && (getline(logFile, l.color, ' ')) {
// ...
关于c++ - 从文件C++读取数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35046463/