私はこのような何かをしようとしています:文字列内の線を反復する?
BOOST_FOREACH (const std::string& line, allLinesOf(someFileLoadedIntoString))
{
...
}
私はallLinesOf機能を実装する方法だろうか?ありがとう!
更新:お返事ありがとうございます。申し訳ありませんが、私は重要な細部について言及することを忘れました。私の場合、改行は\ r \ nです。
私はこのような何かをしようとしています:文字列内の線を反復する?
BOOST_FOREACH (const std::string& line, allLinesOf(someFileLoadedIntoString))
{
...
}
私はallLinesOf機能を実装する方法だろうか?ありがとう!
更新:お返事ありがとうございます。申し訳ありませんが、私は重要な細部について言及することを忘れました。私の場合、改行は\ r \ nです。
あなたはstd::getlineを使用することができますBOOST_FOREACHに渡す文字列を書き込むことができます。
std::string line;
while(std::getline(file, line)) {
// Ohai!
}
"\ r \ n"改行で動作しますか?文字列は、Windowsのテキストファイルから読み込まれます。 –
@Alex:メモリからセパレータを指定することができます。また、テキストモードでロードするときに、MSVC STLは自動的に "\ r \ n"を "\ n"に変換します。 – Puppy
情報ありがとう! –
boost::tokenizerと\n
トークンを使用して行間を反復することができます。
これを1つのallLinesOf関数にパックすることは可能でしょうか? –
場合によっては良い考えではないかもしれません。ここを見てください:http://www.codinghorror.com/blog/2010/01/the-great-newline-schism.html – Aamir
またはboost :: splitと組み合わせてBOOST_FOREACH: –
あの、あなたはSTDのカスタムイテレータ::改行で区切られた文字列のセグメントを反復処理して、そのようなイテレータのはstd ::ペアが
の重複[ラインでファイルの行を反復処理することができますC++のイテレータはありますか?](http://stackoverflow.com/questions/2291802/is-there-ac-iterator-that-can- (しかし、ファイルごとに反復処理する)(Jerryの答えは、「C++で 'cin '行をどのように繰り返し処理するのですか?」(http://stackoverflow.com/questions/1567082/how -do-i-iterate-over-cin-line-by-line-in-c)は、その正確な複製よりも優れています。 –