0

ファイルを単語ごとに読み取り、各単語に対していくつかの実装を実行しようとしています。将来的には、各単語の位置がどこにあったか知りたいです。Position は行番号とその行の文字位置です。文字位置が利用できない場合、次の行に移動するときにファイルを読み込んでいるときだけを知る必要があります。これは私が今持っているサンプルコードです:

string tmp;
while(fin>>tmp){
     mylist.push_back(tmp);
}

フィンがいつ次の行に行くかを知る必要がありますか?!

4

2 に答える 2

1

「フィンがいつ次の行に行くかを知る必要があります」

これは、ストリームの operator では不可能>>です。istringstream入力を 1 行ずつ読み取り、一時オブジェクトを使用して各行を個別に処理できます。

std::string line, word;
while (std::getline(fin, line)) {

    // skip empty lines:
    if (line.empty()) continue;


    std::istringstream lineStream(line);
    for (int wordPos = 0; lineStream >> word; wordPos++) {
        ...
        mylist.push_back(word);
    }
}

忘れないで#include <sstream>

于 2013-11-04T18:10:47.347 に答える