Qt 从QFile的返回行拆分QString
如何拆分从文件中提取的此类文本Qt 从QFile的返回行拆分QString,qt,qt4,qstring,qfile,Qt,Qt4,Qstring,Qfile,如何拆分从文件中提取的此类文本 USA Florida Russia Murmansk Germany Bonn 在美国,佛罗里达,俄罗斯,摩尔曼斯克。。。每个单词都应保存在QString中。 基本上我是这样做的: QFile df("../MyData/visit.DAT"); if (!df.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug()<<"Could not open file fo
USA Florida
Russia Murmansk
Germany Bonn
在美国,佛罗里达,俄罗斯,摩尔曼斯克。。。每个单词都应保存在QString中。
基本上我是这样做的:
QFile df("../MyData/visit.DAT");
if (!df.open(QIODevice::ReadOnly | QIODevice::Text)) {
qDebug()<<"Could not open file for reading";
return;
}
QTextStream txStream(&df);
while (!txStream.atEnd()) {
QString text = txStream.readLine();
QStringList splitD = text.split(" ");
qDebug() << "-"<<splitD;
}
dataFile.close();
QFile-df(“../MyData/visit.DAT”);
如果(!df.open(QIODevice::ReadOnly | QIODevice::Text)){
qDebug()您将整个列表“splitData”放在qDebug中。其中包含两项“USA”和“Florida”。您的代码很可能按照您希望的方式工作,但您误解了输出。
尝试:
您可以使用运算符»或拆分。运算符»也可以连接。因此您可以执行以下操作:
QString country, city;
txStream » country » city;
我想,通过在split方法中传递tab字符,在QStringList
中,将从第行返回两个单词,在不使应用程序崩溃的情况下接受它们
QTextStream txStream(&df);
while (!txStream.atEnd()) {
QString text = txStream.readLine();
QStringList splitD = text.split("\t");
if (i%2==0) {
qDebug() << "Country : "<<splitD.at(0);
i++;
} else {
qDebug() << "City : "<<splitD.at(1);
i++;
}
}
QTextStream-txStream(&df);
而(!txStream.atEnd()){
QString text=txStream.readLine();
QStringList splitD=text.split(“\t”);
如果(i%2==0){
qDebug()我不明白这个问题。split()是正确的方法。什么是“我两个词都有一行”确切的意思是?我得到:USA佛罗里达行;但不是USA,然后Floriday您的QStringList
是splitD
但您正试图打印一个名为splitData
的变量。这是一个输入错误吗?在您的问题中?如果是,请确保您显示的代码仍然显示相同的行为。我得到崩溃。在输出时,我得到了(首先是qDebug):美国佛罗里达,然后是应用程序崩溃奇怪,字符编码可能是原因吗?你能试试text.toLatin1().split()吗?
QString country, city;
txStream » country » city;
QTextStream txStream(&df);
while (!txStream.atEnd()) {
QString text = txStream.readLine();
QStringList splitD = text.split("\t");
if (i%2==0) {
qDebug() << "Country : "<<splitD.at(0);
i++;
} else {
qDebug() << "City : "<<splitD.at(1);
i++;
}
}