Heim >Backend-Entwicklung >C++ >Wie greife ich mit C direkt auf eine bestimmte Zeile in einer Textdatei zu?

Wie greife ich mit C direkt auf eine bestimmte Zeile in einer Textdatei zu?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-06 07:13:02694Durchsuche

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

Navigieren in Textdateien in C: Zu bestimmten Zeilen springen

Das Öffnen von Textdateien mit fstream ermöglicht den Zugriff auf den Inhalt der Datei. Manchmal ist es jedoch notwendig, eine bestimmte Zeile in der Datei zu überspringen oder darauf zuzugreifen.

Navigieren zu einer bestimmten Zeile

Um zu einer bestimmten Zeile zu gehen, z. B. Zeile 8, eine einfache Methode besteht darin, einen schleifenbasierten Ansatz zu verwenden:

<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>

Diese Funktion verwendet einen Dateistream und eine Zeilennummer als Parameter. Es setzt den Suchzeiger der Datei auf den Anfang der angegebenen Zeile.

Den Code verstehen

  1. file.seekg(std::ios:: beg);: Setzt den Suchzeiger auf den Anfang der Datei.
  2. for (int i = 0; i < num - 1; i){: Durchläuft jede Zeile bis zur gewünschten Zeilennummer.
  3. file.ignore(std::numeric_limits::max(), 'n');: Verbraucht und verwirft Zeichen, bis eine neue Zeile gefunden wird oder der Stream endet.
  4. Nach Abschluss der Schleife wird der Suchzeiger am Anfang der angegebenen Zeile positioniert.

Beispielverwendung

Um diesen Ansatz zu testen, betrachten Sie a Textdatei mit folgendem Inhalt:

1
2
3
4
5
6
7
8
9
10

Das folgende Programm zeigt, wie man zu Zeile 8 gelangt:

<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>

Mit dieser Methode können Sie ganz einfach zu einer bestimmten Zeile navigieren eine Textdatei. Dieser Ansatz ist besonders nützlich, wenn es um große Dateien geht oder wenn auf bestimmte Informationen zugegriffen werden muss, ohne die gesamte Datei zu analysieren.

Das obige ist der detaillierte Inhalt vonWie greife ich mit C direkt auf eine bestimmte Zeile in einer Textdatei zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn