2014-02-06 61 views
0

我有一個輸入文本文件,每行都有不同的信息,但我需要能夠從特定行快速選擇一個特定的詞幾百次,所以我需要一個向量字符串向量。如何從文件中創建X行單詞的「2維矢量」?

我有2個起點,但不知道如何繼續。

std::vector<std::string> lines; 
std::string line; 
while (std::getline(input, line)) { 
    if (!line.empty()) 
     lines.push_back(line); 
} 

分隔成線

std::string word; 
while (in_str >> word) { 
    input.push_back(word); 
} 

分隔成詞

回答

2

您可以結合兩種方法:-)

首先,你得到整個與getline一致,然後考慮這行std :: istringstream(w這本質上是一種常見的流言),並將輸入分成單詞)。

#include <iostream> 
#include <string> 
#include <vector> 
#include <sstream> 

int main(void) { 
    std::vector<std::vector<std::string> > lines; 
    std::string line; 
    while (std::getline(std::cin, line)) { 
     if (!line.empty()) { 
      std::vector<std::string> words; 
      std::string word; 
      std::istringstream is(line); 
      while (is >> word) 
       words.push_back(word); 
      lines.push_back(words); 
     } 
    } 
    std::cout << "The word at line 3, pos 2 is \"" << lines[2][1] << '"' << std::endl; 
    return 0; 
} 

這給了我如下:

 
abc def gdf 
qwe asd zxc 
qaz wsx edc 
The word at line 3, pos 2 is "wsx"