Qt-使用getline函数

时间:2014-03-14 16:21:55

标签: c++ qt getline

我正在使用Qt 5.2.1,这是我想在我的程序中使用的函数的一部分 -

while( getline(in,str,':')
{
getline(str,'\n');
int var = atoi(str.c_str());
}

我的问题是如何在qt中实现这一点?

我搜索了一些文档,发现了readline和split,但我不知道如何使用它们

非常感谢任何帮助。 :d

编辑 - 我的第一个getline在文本文件中检查':',第二个获取数字(在':'之后)并将其转换为整数并将其存储在变量中。

2编辑:

以下是我的文本文件的样子......

500 - 1000:1

1000 - 1500:2

1500 - 2000:7

2000 - 2500:6

1,2,7,6是我程序中需要的值

1 个答案:

答案 0 :(得分:3)

我不完全确定你要做什么。如果您正在尝试阅读文件:

QFile file("/path/to/file.whatever");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text) {
   // error message here
   return;
end

while (!file.atEnd()) {
    QString line = in.readLine();
    // now, line will be a string of the whole line, if you're trying to read a CSV or something, you can split the string
    QStringList list = line.split(",");
    // process the line here
}
当它超出范围时,

QFile自行关闭。

如果您尝试根据您所在的:分隔符拆分字符串,请使用:

QStringList list = line.split(":");

编辑:

既然您已经定义了要执行的操作(请按照这样的方式读取"值:整数"),您可以使用QStringList轻松完成。例如:

QString input = "value:1";
QStringList tokens = input.split(":");
int second = tokens.at(1).toInt();

当然,您需要使用自己的错误检查,但这是我认为您尝试做的一个示例。