我在.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.252016-01-18

最佳答案

切勿使用!logFile.eof()测试输入的结尾,因为它不会在输入的结尾返回true。改为使用getline,例如:

while ((getline(logFile, l.date, ' ') && (getline(logFile, l.color, ' ')) {
    // ...

关于c++ - 从文件C++读取数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35046463/

10-13 06:50