gpt4 book ai didi

c++ - QString line.split

转载 作者:行者123 更新时间:2023-11-28 06:06:28 29 4
gpt4 key购买 nike

我在使用 QT 上的拆分功能时遇到问题。我有一个文本文件,第一行是这样的:

10,100;100,100;100,100;100,200;100,200;300,200;300,200;300,350;300,350;250,350;250,350;250,300;250,300;200,300;200,300;200,400;200,400;10,400;10,400;10,100

此处每两个数字代表一个具有 x 和 y 值的点,分号将这些点分开。每个分号后都有一个新点。

我想做的是像这样一个元素一个元素地拆分这些数字;

元素 0: 10
元素 1:100
元素 2:100
元素 3:100
...

我已设法做到这一点,但文本文件中没有任何分号或冒号。

文本文件的第一行:

10 100 100 100 100 200 300 200 300 350 250 350 250 300 200 300 200 400 10 400 10 100

我是这样做的:

void Dialog::readFile()
{
QFile file("/Path/of/the/text/file/Data.txt");

if(!file.open(QIODevice::ReadOnly)) {
QMessageBox::information(0, "info", file.errorString());
}

QString line = file.readLine();
qDebug() << "line:" << line << "\n";
QStringList list = line.split(" ");
double element;

for(int i = 0; i < list.size(); i++) {
element = list.at(i).toDouble();
points_.append(element);
qDebug() << "element:" << element << "\n";
}
}

这段代码的输出是:

line: "10 100 100 100 100 200 300 200 300 350 250 350 250 300 200 300 200 400 10 400 10 100\r" 
element: 10
element: 100
element: 100
element: 100
element: 100
element: 200
element: 300
element: 200
....

我想以完全相同的方式执行此操作。有什么建议吗?

PS:我是 QT 的新手,所以请考虑一下。

最佳答案

您可以在 QString::split 中使用正则表达式重载QRegExp或下一个服用 QRegularExpression :

QStringList list = line.split(QRegExp(",|;")); // ",|;" matches ',' or ';'

QRegExp 被称为弃用,但它可以在这里完成工作。

关于c++ - QString line.split,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32288744/

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