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

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

Patricia Arquette
リリース: 2024-11-01 12:58:29
オリジナル
763 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート