Hallo und willkommen zurück.
In dieser Vorlesung möchte ich bieten eine Demonstration unserer
ersten Herausforderung beim Lesen aus einer Datei.
Wir werden die Anzahl zählen Zeilen innerhalb einer Datei mit fgetc.
Lassen Sie uns also Codeblöcke aufrufen, und lassen Sie uns unser Projekt erstellen.
Hier werden wir nur sagen neues
Projekt, und es wird eine grundlegende Leseausrichtung sein.
Sagen wir also Konsolenanwendung auswählen c, und wir nennen diese grundlegende oder zählende Anzahl
von Zeilen wie über die Anzahl der Zeilen zählen.
Und so wird dies schaffen unser Haupt. c was gut ist.
Bevor wir diese Anwendung überhaupt starten Wir möchten jedoch tatsächlich unsere Datei
erstellen, die Text enthält.
Da wir nicht schreiben, sind wir einfach Anzahl der Zeilen einlesen.
Also muss man wissen wo Sie haben Ihr Projekt gespeichert.
Ich speichere meine Projekte im Inneren meines Download-Verzeichnisses.
Und wenn Sie ein neues Projekt erstellen In Ihrem Download-Verzeichnis gehen
Sie zu diesem Projektnamen.
Mein Projektname ist Anzahl der Zeilen zählen.
Also innerhalb der Zählnummer von Linien, ich habe meine Haupt. c-Datei.
Ich kann meine Datei erstellen direkt in diesem Verzeichnis.
Also gehe ich einfach nach rechts Klicken Sie in das Verzeichnis
und ich werde neu sagen und ich bin werde eine Textdatei erstellen.
Dies ist ein neues Textdokument. und es wird ein Test sein. Text.
Ich werde es öffnen.
Sie können in jedem öffnen Editor, das ist Wordpad.
Es wird sich einstellen einige Zeilen, hallo.
Dies wird getestet für Buchhaltung, okay, a, nur ein paar Zeilen und dann
Sie möchte das speichern und schließen.
Nachdem ich meine Datei erstellt habe, kann ich fange tatsächlich an, etwas zu implementieren.
Das erste was ich machen möchte Ich möchte eine
konstante Variable für den Dateinamen erstellen.
Also werde ich nur define verwenden.
Dies wird meinen Dateinamen darstellen.
Ich werde nur den Dateinamen in allen sagen Kappen, und das wird gleich
sein, was ich es gerade genannt habe, was wieder ist test. Text, also testen. Text.
Und mein ganzer Code geht meine Hauptfunktion sein.
Ich möchte meinen Dateizeiger erstellen.
Denken Sie daran, um einen Dateizeiger zu erstellen, Sie verwenden einfach alle Großbuchstaben FILE und sagen dann Stern
und dann können Sie einfach fp sagen.
Und ich werde es tun Initialisieren Sie das auf null.
Wann immer Sie Dateien lesen und beim Schreiben müssen Sie sicherstellen, dass
Sie die Standardbibliothek einschließen. h.
Ich werde auch eine Single erstellen Charakter, der verwendet werden soll.
Ich werde nur char sagen, und dann werde ich einen Zähler
für alle meine Zeilen erstellen.
Ich werde sagen, dass die Anzahl der Zeilen zählt.
Und ich werde das auf 0 initialisieren.
Das erste, was Sie tun müssen, wenn Wenn Sie aus
Dateien lesen, müssen Sie sie öffnen.
Die Funktion f open ist also Ich werde einen Dateizeiger zurückgeben.
Also möchte ich das meinem zuordnen fp Variable und ich möchte f
open und den Namen der Datei sagen Der Name, den ich bereits definiert habe,
ist ein konstanter Dateiname.
Und ich möchte mich zum Lesen öffnen und nur lesen, also sage ich nur r.
Also hier möchte ich mit meinem fopen machen Dateiname als meine Konstante und dann r in
doppelten Anführungszeichen, das ist unser Modus.
Ich möchte nur lesen.
Ich möchte nicht schreiben.
Wenn ich ein R Plus gemacht habe, habe ich würde auch schreiben.
Bevor wir den Zeiger verwenden, wird der Zeiger repräsentiert die Datei.
Ich möchte das sicherstellen Der Zeiger ist nicht gleich null, also möchte
ich ein f machen.
Ich möchte sagen, dass fp gleich null ist.
Dann, wenn es gleich null ist, ich nur möchte im Gegenzug einen Fehler anzeigen.
Also möchte ich so etwas machen Die printf-Datei existiert nicht, was auch immer Sie
tun möchten.
Und das wird dann gehen.
Wir werden einfach zurückkehren wollen eine negative 1 aus unserer Funktion.
Nachdem wir die Datei geöffnet haben, jetzt wir kann tatsächlich anfangen,
Zeichen zu lesen, so dass wir eine while-Schleife und schreiben können wir wollen sagen, während unser Charakter,
der ein Charakter ist, gleich fgetc ist.
Fgetc liest ein einzelnes Zeichen.
Wir übergeben unseren Dateizeiger und Wir wollen im Grunde sagen, wir
wollen Zeichen lesen, bis wir einen Eof sehen.
Also sagen wir, bis es nicht mehr gleich eof ist.
Dann springen wir raus unsere Schleife, so etwas.
Also werden wir Zeichen einlesen bis wir zum Ende der Datei kommen.
Solange unser Charakter nicht ist Bei einem Zeilenvorschub möchten wir nur inkrementieren, wenn wir
einen Zeilenvorschub sehen.
Also werden wir sagen, ob unser Charakter gleich einem Zeilenvorschub ist, dann wollen wir unseren
Zähler grundsätzlich erhöhen.
Wir wollen nur sagen, dass Zeilen plus zählen Plus, das wird unsere Zeilen zählen.
Und dann springen wir aus der Schleife wenn wir am Ende der Datei angelangt sind.
Wir empfehlen aber nur unsere Konto, wenn wir einen Zeilenvorschub erhalten.
Das Letzte, was Sie immer tun möchten Nachdem Sie das Schreiben gelesen haben, möchten Sie
Ihre Datei schließen.
Sie möchten also fclose und sagen Übergeben Sie dann den Dateizeiger.
Und dann würden wir auch setzen wollen Unser Dateizeiger ist gleich null.
Und dann können wir das ausdrucken Anzahl der Zeilen, in denen wir laufen.
Wir können also einfach printf total number sagen von Zeilen r Prozent d Backslash n und dann können wir einfach die
Anzahl der Zeilen setzen.
Und dann einfach zurück von die Hauptsache, einfach so.
Also nochmal, um diesen Code durchzugehen, wir Erstellen Sie unseren Dateizeiger. Setzen
Sie ihn auf Null. Erstellen Sie ein Zeichen und ein lokales Zeichen Variable zum Zählen der Zeilen.
Wir öffnen unsere Datei in Zeile 12.
Wir öffnen es im schreibgeschützten Modus.
Wir stellen sicher, dass es nicht null ist, und dann machen wir unsere while-Schleife, um
jedes Zeichen bis einzulesen Wir sind am Ende der Datei.
Jedes Mal, wenn wir einen Zeilenvorschub sehen, Wir erhöhen diesen Zähler.
Und dann schließen wir unsere Datei und setzen Sie unseren Zeiger auf null.
Und dann drucken wir aus die Anzahl der Zeilen.
Lassen Sie uns fortfahren und dies bauen.
Und wir haben eine zusätzliche Leitung füttern, wir wollen sicher gehen.
Also möchte ich sicherstellen, dass wir es nicht tun vergiss das Komma in unserem printf.
Und jetzt führen wir das, es wird Lesen Sie aus unserer Datei, die wir erstellt haben, und teilen
Sie uns mit, wie viele Zeilen wir haben.
Es heißt also Gesamtzahl von Zeilen sind sechs.
Wenn wir unsere Textdatei öffnen, sollten wir Beachten Sie, dass es sechs Zeilen gibt, eine, zwei,
drei, vier, fünf, sechs.
Es gibt tatsächlich sieben.
Also müssten wir das erhöhen letzte bis wir den eof bekommen.
Hier ist also ein kleiner Fehler wo wir nur sagen, weil dies unseren
letzten Zeilenvorschub macht bevor wir das Ende der Datei erreichen.
Also möchten Sie tatsächlich haben Dies wäre eine weitere und dann würden wir es ausführen und es würde
tatsächlich funktionieren.
In diesem Fall werden wir es also tun füge ein paar Zeilen hinzu.
Und in diesem Fall sollten wir haben eine, zwei, drei, vier, fünf,
sechs, sieben, acht, neun Zeilen.
Wir schließen die Datei.
Wir führen es erneut aus, kompilieren es, und wir sollten neun bekommen.
In diesem Fall erhalten wir 9.
Also werde ich diesen Quellcode speichern.
Sie können es herunterladen.
Dies sind die Grundlagen des Lesens Daten aus einer Datei mit fgetc.
Du willst auch werden vertraut mit fgets.
Und dann, um die Ausgabe zu formatieren, können Sie verwenden fscanf zum Einlesen der formatierten Ausgabe.
Ich hoffe das war hilfreich. Vielen Dank.