Лучший способ читать QString построчно - PullRequest
0 голосов
/ 23 мая 2019

Я хочу создать функцию grep (например, grep в bash) для строки q в c ++. Поэтому мне нужен цикл, где я могу читать строку QString построчно. Какой самый лучший способ? Вам нужно пройти букву QString и проверить, происходит ли \ n или есть более простой / быстрый / короткий путь?

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

Это должен быть вывод:

Line1
Line2

1 Ответ

0 голосов
/ 24 мая 2019

Идея от @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
...