ホームページ  >  記事  >  バックエンド開発  >  C fstream を使用してテキスト ファイル内の特定の行に直接ジャンプできますか?

C fstream を使用してテキスト ファイル内の特定の行に直接ジャンプできますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-01 12:58:29701ブラウズ

Can You Directly Jump to a Specific Line in a Text File Using C   fstream?

C でテキスト ファイルの特定の行を検索

C の fstream ライブラリを使用すると、テキスト ファイルの読み書きが便利になります。ただし、特定の行に直接移動するのは難しい場合があります。この質問では、この問題に対する潜在的な解決策を検討します。

問題:

fstream を使用してテキスト ファイルを開いた場合、特定の行にジャンプする簡単な方法はありますか? 、8 行目など?

答え:

fstream はファイルのシーク ポインターを設定する方法を提供しますが、特定の行に直接ジャンプすることはできません。 。実際的なアプローチは、目的の行に到達するまですべての行を無視してファイルをループすることです。これを実現する方法は次のとおりです。

<code class="cpp">std::fstream& GotoLine(std::fstream& file, unsigned int num) {
    file.seekg(std::ios::beg);
    for (int i = 0; i < num - 1; ++i) {
        file.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    }
    return file;
}</code>

この関数は、ファイルとシーク先の行番号を取得し、ファイル オブジェクトを返します。

例:

次の内容を含むテキスト ファイルについて考えます。

1
2
3
4
5
6
7
8
9
10

次の C プログラムは、GotoLine 関数の使用方法を示しています。

<code class="cpp">int main() {
    using namespace std;
    fstream file("bla.txt");

    GotoLine(file, 8);

    string line8;
    file >> line8;

    cout << line8;
    cin.get();
    return 0;
}</code>

出力:

8

この例では、プログラムはテキスト ファイルの 8 行目を読み取り、内容「8」を出力します。

以上がC fstream を使用してテキスト ファイル内の特定の行に直接ジャンプできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。