2013-12-08 50 views
1

我想存儲屬於某個數字的名稱,並將所有這些存儲在一個數組中。我是從看起來像這樣的文件中讀取:閱讀未知字數

1 Alan Ed 
2 Eric Sara Lisa Dave 
3 Amanda 
4 Trevor Juliet Brad 

我基本上要陣列,在那裏我存儲的名稱數組中的索引1,2,3,4的數組。這是如何完成的?我知道有幾種方法,我正在尋找一個簡單的方法。

+0

好吧,它通過有一個數組的數組完成。你到底想知道什麼? – Sneftel

回答

4

解析輸入由std::getline()成線串,解析由std::strinstream的提取每一行串入名稱字符串,使用std::vector<std::string>::push_back()到名稱字符串追加到線項目,由另一std::vector<std::vector<std::string>>收集行條目。

這樣的事情,正負語法錯誤:

vector<vector<string>> result; 
istream& is = cin; 
while (!is.eof()) 
{ 
    string ls; 
    getline(is, ls); 
    istringstream line_ss(ls); 
    result.emplace_back(); 
    while (line_ss.good()) 
    { 
     string name; 
     line_ss >> name; 
     result.back().push_back(name); 
    } 
} 

附:索引將是0,1,2,3。如果你真的需要需要它們是1,2,3,4,請改用std :: map。

+0

幹得好的更新... –