C を使用してテキスト ファイルの特定の行に直接アクセスするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-06 07:13:02
オリジナル
620 人が閲覧しました

How to Directly Access a Specific Line in a Text File Using C  ?

C でのテキスト ファイルの移動 : 特定の行へのジャンプ

fstream でテキスト ファイルを開くと、ファイルの内容にアクセスできます。ただし、ファイル内の特定の行をスキップしたり、その行にアクセスしたりする必要がある場合があります。

特定の行への移動

行などの特定の行に移動するには図8に示すように、簡単な方法は、ループベースのアプローチを利用することである。

<code class="cpp">#include <fstream>
#include <limits>

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. file.seekg(std::ios:: beg);: シーク ポインタをファイルの先頭に設定します。
  2. for (int i = 0; i
  3. file.ignore(std::numeric_limits::max(), 'n');: 改行が見つかるかストリームが終了するまで、文字を消費して破棄します。
  4. ループが完了すると、シーク ポインタは指定された行の先頭に配置されます。

使用例

このアプローチをテストするには、次の内容のテキスト ファイル:

1
2
3
4
5
6
7
8
9
10
ログイン後にコピー

次のプログラムは、8 行目に移動する方法を示しています。

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

    GotoLine(file, 8);

    string line8;
    file >> line8;

    cout << line8;  // Output: 8
    cin.get();
    return 0;
}</code>
ログイン後にコピー

このメソッドを使用すると、ファイル内の特定の行に簡単に移動できます。テキストファイル。このアプローチは、大きなファイルを扱う場合、またはファイル全体を解析せずに特定の情報にアクセスする必要がある場合に特に役立ちます。

以上がC を使用してテキスト ファイルの特定の行に直接アクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!