2011-02-04 83 views

回答

2

一種可能(雖然明顯更詳細的比我想)是:

std::string temp; 
std::getline(your_istream, temp); 

std::istringstream buffer(temp); 
std::vector<std::string> words((std::istream_iterator<std::string>(buffer)), 
           std::istream_iterator<std::string>()); 
+0

它看起來很冗長。 (但是,嘿,我問C++。)爲什麼使用`std :: copy`而不是Foo Bah的for循環? – 2011-02-04 03:49:12

0

你可以調用的IStream ::函數getline - 將讀入一個字符數組

例如:

char buf[256]; 
cin.getline(buf, 256); 

如果你想使用兼容的流,訪問在個人令牌線,考慮一個istringstream

1

我建議使用getline緩存行到string,然後使用stringstream解析該string的內容。例如:

string line; 
getline(fileStream, line); 

istringstream converter(line); 
for (string token; converter >> token;) 
    vector.push_back(token); 

請謹慎使用C++中的C字符串讀取功能。 std::string I/O功能更安全。