簡體   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