2016-11-29 50 views
-1

我有以下文本文件。如何使用4個字符讀取C++中的文本文件?

aaaaBBBBccccDDDDKKK 
EEEEPPPPMMMMssssPPPP 
AAAAEEEE 
AAAAEEE 
DDDDCCCC 

而且我必須用C++來讀取文本文件,除以四個字符。

我想在一個數組中插入四個長度字符到字符串中。例如, aaaa,BBBB cccc,DDDD,kkk,每個單詞分爲數組。 串WordArray [N] [M]

WordArray[0][0] = "aaaa"; 
WordArray[0][1] = "BBBB"; 
WordArray[0][2] = "cccc"; 
WordArray[0][3] = "DDDD"; 
WordArray[0][4] = "KKK"; 

WordArray[1][0] = "EEEE"; 
WordArray[1][1] = "PPPP"; 
WordArray[1][2] = "MMMM"; 
WordArray[1][3] = "ssss"; 
WordArray[1][4] = "PPPP"; 
. 
. 
. 

WordArray[4][0] = "DDDD"; 
WordArray[4][1] = "CCCC"; 

我怎麼能讀上這樣的文字?我想使用<fstream>

+0

你有一些這方面的不完整或不正確的代碼?我們不會只爲你寫。 – aschepler

+2

你可以使用['std :: vector'](http://en.cppreference.com/w/cpp/container/vector),['std :: string'](http://en.cppreference.com/w/cpp/string/basic_string),['std :: getline'](http://en.cppreference.com/w/cpp/string/basic_string/getline)和['std :: string :: substr '](http://en.cppreference.com/w/cpp/string/basic_string/substr)函數。 –

+0

@Someprogrammerdude我沒有看到你的評論,直到我發佈我的答案後,但是,是的。 [我真的希望](http://stackoverflow.com/q/40869519/2642059)有一個更聰明的方法來使用'istream_iterator'來做到這一點。 –

回答

1

假設你已經成功打開一個文件到:ifstream pFILE假設你的容器將被定義爲:vector<vector<string>> WordArray然後,你可以做這樣的事情:

string line; 

for(size_t word = 0U; pFILE; word = 0U) { 
    getline(pFILE, line, '\n'); 
    WordArray.push_back(vector<string>()); 

    do { 
     const size_t nextWord = line.find_first_not_of(line[word], word); 

     WordArray.back().push_back(line.substr(word, nextWord - word)); 
     word = nextWord; 
    } while(word != string::npos); 
} 

Live Example

相關問題