gpt4 book ai didi

c++ - QTextStream::readLine(): 无效的返回值

转载 作者:太空宇宙 更新时间:2023-11-04 11:43:12 26 4
gpt4 key购买 nike

我正在尝试使用以下代码从文件中读取:

const char *imageFile = repertoire_Hu.filePath(img_files_Hu[i]).toStdString().c_str();
QFile f(imageFile);
QTextStream out(&f);
float tab2[7];
int q = 0;
if(f.open(QIODevice::ReadOnly | QIODevice::Text))
{
while(!out.atEnd())
{
QString line = out.readLine();
tab2[q] = line.toFloat();
q ++;
}
}
f.close();

这是我的文件内容

-1557.350.659662-2.655055.43287e-235.4945e-34-5.65088e-35-1.35751e+38

但是当我在读取文件后绘制值时,我得到了错误的值(与我比较它们时文件中的值完全不同),有时文件无法打开,大部分时间都无法读取文件中的所有值。

我想我在某处做错了什么,但我想不通。

最佳答案

确保中间没有空行,行尾也没有任何不需要的空格。从您的数据文件复制/粘贴后,您似乎拥有了一切。

这对我来说非常好:

数据.txt

-1557.35
0.659662
-2.65505
5.43287e-23
5.4945e-34
-5.65088e-35
-1.35751e+38

main.cpp

#include <QtCore/QFile>
#include <QtCore/QTextStream>
#include <QtCore/QString>
#include <QtCore/QDebug>

int main()
{

QFile f("data.txt");
QTextStream out(&f);
float tab2[7];
int q = 0;
if(f.open(QIODevice::ReadOnly | QIODevice::Text))
{
while(!out.atEnd())
{
QString line = out.readLine();
tab2[q] = line.toFloat();
qDebug() << "LINE:" << tab2[q];
q ++;
}
}
f.close();

return 0;
}

输出

g++ -Wall -fPIC -I/usr/include/qt/QtCore -I/usr/include -I/usr/include/qt -lQt5Core main.cpp && ./a.out

LINE: "-1557.35" LINE: "0.659662"
LINE: "-2.65505"
LINE: "5.43287e-23"
LINE: "5.4945e-34"
LINE: "-5.65088e-35"
LINE: "-1.35751e+38"

关于c++ - QTextStream::readLine(): 无效的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20637671/

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