带有额外空行的C++数据文件

C++ Data File with extra empty line

本文关键字:C++ 数据 文件      更新时间:2023-10-16

我有一些数据文件,末尾有多余的空行。这导致数据线中的读取出现问题。我正在使用:

而(datFile.good())

但是.of()也不起作用。

有什么建议吗?

    while (datFile.good())
    {
        getline (datFile, line);
        istringstream liness(line);
        int z = 0;
        while (z <= index)
        {
            while (liness >> temp)
            {
                if (z == 0)
                {
                    values[0].push_back(atof(temp.c_str()));
                }
                if (z == index)
                {
                    values[1].push_back(atof(temp.c_str()));
                }
                cout << temp << endl;
                z++;
            }
        }
    }

您应该在读取后使用流的状态!

你没有发布足够的代码来说明,但输入看起来总是这样:

while (in >> data) {
    process(data);
}

使用格式化输入还是非格式化输入都无关紧要。此外,good()通常没有那么有用。aabd eof()仅用于抑制错误消息:如果您读取失败,则可能是因为您读取了所有数据而导致失败。判断读取是否成功从来都不是一个有用的条件:虽然读取成功,但eof()可以产生true

while (getline (datFile, line))
{
    istringstream liness(line);
    // the rest of the loop is unchanged.
    ...
}