2014-05-16 17 views
1

我對istringstream操作有點新不足。我需要找到一種方法來迭代包含八段文本文件中的單詞。我需要獲取每個單詞,測試某些條件,然後將其存儲到鏈接列表中,如果它通過檢查單。我需要幫助的是如何逐一提取每個單詞,使用它,檢查它等等。以下是我的一些代碼:任何人都可以借用一些建議嗎?我有一個循環,但它不更新串子的價值,謝謝在一段文字中逐行迭代單詞

#include <iostream> 
#include <string> 
#include <sstream> 
#include <fstream> 

using namespace std; 

string getLineOfText(ifstream &strIn); 
string parseLineOfText(string&); 


int main() 
{ 
ifstream in("Text.txt"); 
istringstream strI; 
string substrings; 
string strg; 
int lineCount = 0; 




while (!in.eof()) 
{ 
    strg = getLineOfText(in); 
    ++lineCount; 

    strI.str(strg); 

    while (strI >> substrings) 
     cout << substrings << " "; 

    strI.str(""); 
} 

cout << substrings << endl; 
cout << endl << lineCount << endl; 

system("pause"); 

return 0; 
} 


string getLineOfText(ifstream &strIn) 
{ 
string lineTxt; 
getline(strIn, lineTxt); 

return lineTxt; 
} 
+2

[不要把'一個循環條件中eof'](http://stackoverflow.com/q/5605125/2589776)使用'而(函數getline(中,STRG))'代替。 – herohuyongtao

回答

0

移動的strI定義外while循環中。

int main() 
{ 
    ifstream in("Text.txt"); 
    string strg; 
    int lineCount = 0; 

    while (!in.eof()) 
    { 
     strg = getLineOfText(in); 
     ++lineCount; 

     istringstream strI(strg); 
     string substrings; 

     while (strI >> substrings) 
     cout << substrings << " "; 
    } 

    cout << endl << lineCount << endl; 

    system("pause"); 

    return 0; 
}