Heim  >  Artikel  >  Backend-Entwicklung  >  Können Sie mit C fstream direkt zu einer bestimmten Zeile in einer Textdatei springen?

Können Sie mit C fstream direkt zu einer bestimmten Zeile in einer Textdatei springen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-01 12:58:29701Durchsuche

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

Suchen einer bestimmten Zeile in einer Textdatei mit C

Mit der fstream-Bibliothek in C wird das Lesen und Schreiben in Textdateien bequemer . Allerdings kann die direkte Navigation zu einer bestimmten Zeile eine Herausforderung sein. Diese Frage untersucht eine mögliche Lösung für dieses Problem.

Problem:

Wenn eine Textdatei mit fstream geöffnet wird, gibt es eine einfache Möglichkeit, zu einer bestimmten Zeile zu springen? , wie z. B. Zeile 8?

Antwort:

Obwohl fstream eine Möglichkeit bietet, den Suchzeiger der Datei zu setzen, erlaubt es nicht direkt, zu einer bestimmten Zeile zu springen . Ein praktischer Ansatz besteht darin, die Datei zu durchlaufen und dabei alle Zeilen zu ignorieren, bis die gewünschte Zeile erreicht ist. So kann dies erreicht werden:

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

Diese Funktion nimmt die Datei und die Zeilennummer, nach der gesucht werden soll, und gibt das Dateiobjekt zurück.

Beispiel:

Stellen Sie sich eine Textdatei mit folgendem Inhalt vor:

1
2
3
4
5
6
7
8
9
10

Das folgende C-Programm demonstriert die Verwendung der GotoLine-Funktion:

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

Ausgabe:

8

In diesem Beispiel liest das Programm die achte Zeile der Textdatei und gibt den Inhalt aus, der „8“ ist.

Das obige ist der detaillierte Inhalt vonKönnen Sie mit C fstream direkt zu einer bestimmten Zeile in einer Textdatei springen?. 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