2010-05-04 67 views
1

我一次可以從一個文件中讀取一個字符,但是如何讓它每次只讀一個字?所以,閱讀,直到有一個空間,並把它作爲一個字符串。用word讀文件

這讓我的文字:

while (!fin.eof()){ 
    while (fin>> f){ 
    F.push_back (f); 
    } 
+1

看看這個SO張貼關於字符串標記化:http://stackoverflow.com/questions/53849/how-do-i-tokenize-a-string-in-c – gooch 2010-05-04 18:55:12

+0

fin.eof()表示過去的失敗;它沒有告訴你是否沒有更多的輸入。 – Potatoswatter 2010-05-04 21:40:49

回答

3

如果您f變量是std::string型和Fstd::vector<std::string>,那麼你的代碼應該做的正是你想要的東西,讓你與「字」的列表F載體。我將單詞放在引號中,因爲在單詞末尾的標點符號將包含在輸入中。

換句話說,當目標變量類型是一個字符串時,>>運算符自動停在空格(或eof)處。

+0

+1,打我吧。 – rcollyer 2010-05-04 18:55:50

2

試試這個:

std::string word; 
while (fin >> word) 
{ 
    F.push_back(word); 
}