繁体   English   中英

Qt-使用getline函数

[英]Qt- using getline function

我正在使用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是我程序中需要的值

我不确定您要做什么。 如果您尝试读取文件:

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(":");

编辑:

既然您已经定义了要执行的操作(读取类似“ value:integer”的内容),则可以轻松地使用QStringList进行此操作。 例:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM