gpt4 book ai didi

c++ - 如何使用QT从文本文件中读取Point(x,y)数据?

转载 作者:太空狗 更新时间:2023-10-29 21:23:02 25 4
gpt4 key购买 nike

我想使用 QT 读取存储在文本文件中的坐标值。 TextFile 将包含以下内容。

 80.0910,13.1289
80.0911,13.1289
80.0912,13.1290

由于这些是 GPS 值,它将随时间不断变化。所以每次我只想从这个文件中读取最后一个值并将其存储为

x=80.0912 y=13.1290

这意味着我想拆分最后一行并存储到 x 和 y。

我在这个论坛上看到了类似的问题,但没有什么能满足我拆分和存储数据的需要。

QFile inputFile(":/input.txt");
if (inputFile.open(QIODevice::ReadOnly))
{
/* WHAT
SHOULD
I DO
HERE */
}

最佳答案

如果你的行总是有相同的长度,你可以这样做:

inputFile.seek(inputFile.size - LENGTH_OF_LINE);
QString line = QString::fromLocal8Bit(inputFile.readLine());

或者只是用 QTextStream 遍历所有行(这适用于动态大小的行):

QTextStream ts(inputFile);
QString line;
while(!ts.atEnd())
line = ts.readLine();

编辑:

对于分割你可以使用:

QStringList list = line.split(",");
double x,y;
if(list.size() == 2)
{
x = list.at(0).toDouble();
y = list.at(1).toDouble();
}else{
qDebug()<<"Line not having coordinates: "<<line;
}

编辑:

Concat 两者并进行小的编辑将始终只为最后一行产生有效结果,错误产生 0/0 坐标:

QTextStream ts(inputFile);
QString line;
while(!ts.atEnd())
{
QString temp = ts.readline();
if(temp.size()>2)
{
//having more then 2 chars (e.g. 8,6 as coordinates)
line = ts.readLine();
}
}

QStringList list = line.split(",");
double x = 0.0;
double y = 0.0;
if(list.size() == 2)
{
x = list.at(0).toDouble();
y = list.at(1).toDouble();
}else{
qDebug()<<"Line not having coordinates: "<<line;
}

关于c++ - 如何使用QT从文本文件中读取Point(x,y)数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19263667/

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