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!