gpt4 book ai didi

c++ - 让指针回到第一行 - QFile

转载 作者:太空宇宙 更新时间:2023-11-04 14:02:52 25 4
gpt4 key购买 nike

从文件中读取数据并将其保存在 QHash 中,如下所示:

 QHash<int, QVector<float> >

我的数据文件不包含标题,所以当我第一次创建 vector 然后进入文件循环时,我错过了第一行的数据。我的来源是:

    QFile file("...\\a.csv");
if(!file.open(QIODevice::ReadOnly))
{
QMessageBox::warning(0, "Error", file.errorString());
}

QString fileLine = file.readLine();
QStringList fileLineSplit = fileLine.split(',');
hashKeySize = fileLineSplit.size();

for(int t=0; t<hashKeySize; t++)
{
QVector<float> vec;
hash_notClustered[t] = vec;
}

while(!file.atEnd())
{
QString line = file.readLine();
QStringList list = line.split(',');
for(int t = 0; t<list.size(); t++)
{
hash_notClustered[t].push_back(list[t].toFloat());
}
}

问:在使用while(!file.atEnd()) 循环时,如何让指针回到第一行而不错过第一行?

最佳答案

使用 file.close() 关闭文件

for(int t=0; t<hashKeySize; t++)
{
QVector<float> vec;
hash_notClustered[t] = vec;
}

并在 while(!file.atEnd()){...} 解决问题之前重新打开它。

关于c++ - 让指针回到第一行 - QFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18430071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com