2017-02-15 159 views
0

我需要讀取一個文件,這是一個使用QT框架的.asc文檔。如何讀取文件並保存特定的字符串?

我需要檢查文件的特定字符串,例如「(名稱)」。 特定字符串後面的數字必須保存在另一個.txt文件中。

所以我試圖使用for循環連接getline()語句,而if語句應該檢查是否已經找到預定義的字符串。 如果找到字符串,我使用字符串變量.assign()方法將整個匹配行輸入到另一個字符串。 但可悲的是,它仍然無法正常工作,也許是邏輯上的失敗,所以我在尋求你的幫助!

std::string line; 
std::string search = "(Name)"; 
std::string content; 
std::ifstream ifs("C:/PROG/EMS/LD1/analyse_led"); 
for(unsigned int curLine = 0; std::getline(ifs, line); curLine++) { 
    if (line.find(search) != std::string::npos) { 
     content.assign((std::istreambuf_iterator<char>(line)), 
         (std::istreambuf_iterator<char>() )); 
    } 
} 

當然我實現了上面的所有相關包含文件,感謝您的幫助! 如果您需要更多信息,請在評論中告知我。

+0

我看不出有任何的Qt類或代碼!? QFile和QString可能會更容易,如果你已經使用Qt。 – xander

+0

感謝您的幫助。 @BoBTFish你的解決方案工作。 – Jonas

+0

@Jonas既然它爲你工作,我把評論移到了答案。 – BoBTFish

回答

0

contentlinestd::strings,只是做

content = line; 

content = std::move(line); 

,如果你不需要做任何其他與line之後。 (此後line將爲空)。

我不知道你正在努力實現與istreambuf_iterator什麼,但我敢肯定,這是行不通的......

相關問題