1

プログラムでテキスト ファイルを開き、特定の行 (18 行目など) に移動して、その行の各文字を char ベクトルに格納したいと考えています。

私は一般的にプログラミングにかなり慣れていないので、これが最善の方法ではないかもしれませんが、私がやろうとしていることは次のとおりです。

1) 特定の行を取得して文字列に格納する

2) その文字列を char ベクトルに変換します。配列の代わりにベクトルを使用しているので、pushback() を使用して、配列に割り当てる量が多すぎたり少なすぎたりするのではなく、必要な正確なサイズのベクトルを作成できます。

ステップ2は問題なく実行できますが、問題があるのはステップ1です。特定の行に移動するにはどうすればよいですか?

4

1 に答える 1

2

すべての行を読み、興味のない行は無視してください:

#include <iostream>
#include <fstream>
#include <string>

int main()
{
        std::ifstream file("file.ext");
        std::string line;
        unsigned int line_number(1);
        const unsigned int requested_line_number(4);
        while (std::getline(file, line))
        {
                if (line_number == requested_line_number)
                {
                        std::cout << line << "\n";
                }
                line_number++;
        }
}

もちろん、このコードにはエラー処理がありません。当然のことながら、ほとんどの場合、行番号をハードコーディングしたくはありませんが、アイデアは得られます。

また、char ベクトル / 配列の目的がよくわかりません。文字列処理のニーズに使用std::stringします。それが目的です。

于 2011-03-05T21:23:25.763 に答える