逐行读取 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
我想为 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