我正在使用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是我程序中需要的值
答案 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();
当然,您需要使用自己的错误检查,但这是我认为您尝试做的一个示例。