逐行读取QString的最佳方法

时间:2019-05-23 17:53:52

标签: c++ qt qstring

我想为c ++中的qstring创建一个grep函数(如bash中的grep)。所以我需要一个循环,可以逐行读取QString。什么是最好的方法?您是否必须逐个字母地检查QString并测试是否出现\ n或是否有更简单/更快/更短的方法?

QString Text = "Line1\nLine2\n";
Loop {
    std::cout << Line.toStdString() << std::endl;
}

这应该是输出:

Line1
Line2

1 个答案:

答案 0 :(得分:0)

@thuga和@drescherjm的想法

    QString TXT="l1\nl2\nl3\nl4", Line;
    QTextStream stream(&TXT);

    while (stream.readLineInto(&Line)) {
        std::cout <<Line.toStdString() << std::endl;
    }
    //Set the device to pos 0
    stream.seek(0);


输出:

l1
l2
l3
l4
    QString TXT="l1\nl2\nl3\nl4";
    QStringList Lines = TXT.split('\n');
    for (int i = 0; i < Lines.size(); i++) {
        std::cout <<Lines[i].toStdString() << std::endl;
    }

输出:

l1
l2
l3
l4