逐行读取 QString 的最佳方法

Best way to read a QString line by line

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

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

这应该是输出:

Line1
Line2

来自@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