我在用Qt讀取文本文件時遇到了麻煩。 我的文本文件看起來像這樣:用QTextStream讀取文本文件Qt
17,9001500000000 31,1151700000000 450 0 NaN NaN NaN NaN NaN NaN
1 1 1390309311,00000 0,999847695156391 0,999847695156391 0,999847695156391 0,999847695156391 0,999847695156391 0,999847695156391 0,999847695156391
1 2 1390309311,00000 0,999695413509548 0,999695413509548 0,999695413509548 0,999695413509548 0,999695413509548 0,999695413509548 0,999695413509548
等..
數據由空格分隔
第一行:第一行的第一列寫有我需要的信息一般用於以下行。不是使用第一行的每一個顏色。在一些信息之後,列中填充了「NaN」。
下一行: 在這裏我的數據被放置。我想逐行閱讀所有內容。前3列再次是該行的一般信息,下面(比方說300列)填充了3種不同類型的數據(每種大小爲100次測量)。
所以我讀了我的文件: 首先,如果我在第一行讀到,我想要接收整個文件的一般信息。 (info1,info2,info3,info4) 然後我讀了下面幾行,用空格分隔。
if (!File.open(QIODevice::ReadOnly | QIODevice::Text))
return false;
QTextStream in(&metFile);
QString line;
int linecount = 0;
double info1,info2,info3,info4;
double lineinfo1,lineinfo2,lineinfo3;
while (!in.atEnd()) {
if (linecount==0) {
in >> info1 >> info2 >> info3 >> info4;
linecount++;
}
else {
line = in.readLine();
QStringList lineparts = line.split(QRegExp("\\s+"));
lineinfo1=lineparts[0].toFloat;
lineinfo2=lineparts[1].toFloat;
lineinfo3=lineparts[2].toFloat;
for (int count=1; count<=100;count++) {
float data1=lineparts[count+2].toFloat();
float data2=lineparts[100+count+2].toFloat();
float data3=lineparts[2*100+count+2].toFloat();
}
linecount++;
}
}
現在,info1-4被正確讀取。但在那之後,lineinfo1-3和data1-3(lineparts [0]等)被填充了nan或0 ?!
有人可以幫助我嗎?
謝謝!
你是對的。我不會讀'linecount == 0'循環中的整行。謝謝! – smaica