2011-02-20 8 views
23

私はstd::stringに複数の行があり、行ごとにそれを読む必要があります。 小さな例でそれを行う方法を教えてください。C++を使用して行単位で文字列を読む

例:私は、文字列を持っているstring h;

時間は次のようになります。

Hello there. 
How are you today? 
I am fine, thank you. 

私は何とかHello there.How are you today?、そしてI am fine, thank you.を抽出する必要があります。

+0

を使用することができますか? – Petruza

+0

「ここで質問するにはどうすればよいですか」の最後の段落をご覧ください。 [FAQ](http://stackoverflow.com/faq) – tenfour

答えて

49
#include <sstream> 
#include <iostream> 

int main() { 
    std::istringstream f("line1\nline2\nline3"); 
    std::string line;  
    while (std::getline(f, line)) { 
     std::cout << line << std::endl; 
    } 
} 
10

はそれを行うには、いくつかの方法があります。

ループ内のは、ループ内で'\n'文字に、substr()は位置間に使用できます。

あなたは(おそらく最も簡単な)

std::istringstreamstd::getline(istr, line)を使用することができますが、 `複数link`言うときあなたは、あなたが実際にそれを意味するか、あなたは` lines`を意味boost::tokenize

関連する問題