如何弹出QString的第一个字符串?

时间:2014-06-15 02:15:37

标签: c++ qt parsing qstring

例如,我的QString"12 1,2 3,4",我想弹出"12",然后修剪掉前导空格,使其变为" 1,2 3,4"

这是从输入文件中读取的一部分。

QFile input_file("path/to/testfile.txt");

if (!input_file.exists()) {
  dbg << "File does NOT exist" << endl;
  exit(1);
}

if (!input_file.open(QFile::ReadOnly)) {
  exit(2);
}

QDataStream input_stream(&input_file);
while (!input_file.atEnd()) {
  QString line = input_stream.readLine();
  // how do I parse off that first number?

2 个答案:

答案 0 :(得分:1)

看起来QTextStream可以完成这项工作,您的评论目前在哪里。

QTextStream似乎是std::istringstream的QT等价物,用于解析由空格分隔的文本。

QTextStream text_stream( &line );
QString that_first_numer;

text_stream >> that_first_number;  // Read text up to whitespace
line = text_stream.read_line();    // Copy the remaining text back to line.

答案 1 :(得分:1)

您可以将字符串拆分为由任何字符分隔的子字符串:

QStringList tokens= line.split(" ",QString::SkipEmptyParts);

现在tokens[0]可以访问第一个号码。

删除第一个元素并修剪字符串就像:

line.remove(0,tokens[0].length()).trimmed();