QFile.atEnd()太早返回TRUE

时间:2013-04-07 23:07:29

标签: eof qfile

我正在尝试读取CSV文件。我的代码如下。我遇到的问题是,正如预期的那样读入文件的第一行,但是一旦达到while循环条件,File.atEnd将返回true。我已经尝试过几个文件,一些非常大,但它仍然只读取CSV文件的第一行。我已经介入了调试器,无法找到原因。 运行Win7 Pro(64位) Qt v5.0.1(32位) QDesigner v2.6.2。

更新:如果我有一个包含大量列的CSV文件,那么

QFile File(strFileName);
File.open(QIODevice::ReadOnly | QIODevice::Text);

QTextStream FileStream(&File);

while( !File.atEnd() )
{
    QString strLine = FileStream.readLine();
    //Do some code here
}

File.close();

CSV文件示例:

1,10,20
2,20,30
3,30,40

1 个答案:

答案 0 :(得分:0)

尝试更改

while( !File.atEnd() )

while( !FileStream.atEnd() )