Hallo und willkommen zurück.
In dieser Vorlesung möchte ich Sprechen Sie über das Schreiben in eine Datei.
Wir werden uns konzentrieren beim Schreiben in eine Textdatei.
Was wir lernen werden ist, wie Sie Zeichen schreiben können, wie Sie Zeichenfolgen
schreiben können und wie Sie können formatierte Ausgaben schreiben.
Die drei Möglichkeiten auch das wir konnten lesen.
Es gibt also drei Funktionen Man muss wirklich vertraut
sein, um diese Dinge zu tun.
Die einfachste Schreiboperation ist in der Funktion fputc bereitgestellt.
Also genau wie es ein Fgetc gab Zum Lesen von Zeichen gibt
es einen Fputc zum Schreiben von Zeichen.
Dies wird eine Single schreiben Zeichen zu einer Textdatei, fputc.
Nicht so effizient wie das Schreiben Saiten, aber manchmal notwendig.
Es nimmt eine ganze Zahl als seine erster Parameter und ein Dateizeiger als
zweiter Parameter und gibt eine Ganzzahl zurück.
Die Funktion schreibt die Zeichen, das durch
das erste Argument der Datei angegeben wird identifiziert durch das zweite Argument.
Der Dateizeiger repräsentiert also Was es immer tut: Die Datei, in die
Sie schreiben möchten.
Und dann der Charakter du Eigentlich wollen Sie
schreiben, ist Ihr erster Parameter.
Das zurückgegebene Zeichen ist was wurde geschrieben, wenn erfolgreich.
Denken Sie daran, wenn es eof zurückgibt, es bedeutet, dass es ein Fehler war.
Wenn es etwas anderes zurückgibt als das eof, es bedeutet, dass es Erfolg war.
In der Praxis sind Charaktere normalerweise nicht einzeln in
eine physische Datei geschrieben.
Es ist äußerst ineffizient.
Die Putc-Funktion ist die äquivalent zum fputc.
Sie sehen dies oft auch verwendet.
Es erfordert die gleichen Argumente und der Rückgabetyp ist der gleiche.
Der Unterschied zwischen ihnen ist dass der putc in der Standardbibliothek
als Makro implementiert werden kann.
Während fputc eine Funktion ist.
Nicht viele Unterschiede, aber Wir haben nichts über Makros gelernt.
Also bleiben wir bei fputc zum Schreiben einzelner Zeichen.
Und zum Beispiel ist es ziemlich einfach.
Als erstes muss man wie immer machen ist, müssen Sie die Datei öffnen.
Vorher erklären wir unsere Variablen, die wir als Dateizeiger deklarieren, sollten
mit null initialisiert werden.
Und dann unsere ganze Zahl welche wir werden schreiben
Wenn wir unsere Datei öffnen, werden Sie Beachten Sie, dass wir ein w oder ein w plus machen.
W bedeutet, dass wir gehen werden Nur schreiben, du kannst nicht lesen.
W plus bedeutet, dass Sie schreiben und lesen können.
In diesem Fall können wir schreiben und lesen.
Hier haben wir eine for-Schleife.
Wir machen das alles durch Zeichen von 33 bis 100.
Wenn dies ganze Zahlen sind, was? Dies bedeutet, dass das Zeichen
in der ASCII-Tabelle dargestellt wird.
Also, wenn Sie zum Beispiel Zeichen schreiben 59, müssten Sie es in der ASCII-Tabelle nachschlagen,
um zu sehen, was es darstellt, aber es wäre ein tatsächlicher Charakter.
Hier schreiben wir nur ASCII-Werte 33 bis 100, und
wir sagen fputc char fp.
Und Sie könnten die Konvertierung verwenden Funktionen, wenn Sie
ASCII-Werte und Ganzzahlen erstellen möchten, Sie können einfach ein Atoi verwenden.
Also, wenn Sie das schreiben wollten Zeichen c, man könnte fputc atoi sagen
und dann c in einfache Anführungszeichen setzen.
Das wäre auch gut so weil es das ASCII in
eine Ganzzahl konvertieren und schreiben würde.
Aber das erste Argument ist eine ganze Zahl, Sie müssen also eine Ganzzahl schreiben.
Das zweite Argument ist unsere Akte Zeiger, dort ziemlich unkompliziert.
Und dann das Letzte, was wir müssen tun müssen wir diese Datei schließen.
Wir wollen wahrscheinlich auch setze den fp Zeiger auf null.
Aber auch hier dauert es eine ganze Zahl.
Also sei dort vorsichtig.
Es ist immer vertreten in der ASCII-Tabelle.
Sie können aber das tatsächliche konvertieren Zeichen zwei ganze Zahlen mit atoi.
Wie wäre es mit einem String zu
einer Textdatei, viel nützlicher, effizienter.
Hier verwenden Sie die fputs Funktion.
Dies wird es Ihnen ermöglichen Schreiben Sie in eine beliebige Datei oder einen Stream.
Es ist ähnlich wie bei den Fgets Nimmt eine konstante Ladungszeichenfolge, die Sie
als schreiben möchten erster Parameter zum Zeiger.
Und es dauert eine, als unsere zweite Parameter, der Dateizeiger, in welche
Datei Sie schreiben möchten.
Und dann wird ein int zurückgegeben.
Das erste Argument ist also unser Zeigen Sie auf die Zeichenfolge,
die Sie schreiben möchten.
Das zweite Argument ist die Datei Zeiger selbst, und die Funktion
schreibt Zeichen aus einer Zeichenfolge bis es den Nullterminator erreicht.
Die Null wird nicht geschrieben Abschlusszeichen in die Datei, daher
müssen Sie es explizit schreiben.
Dies kann die Dinge komplizieren, weil Wenn Sie die Daten
zurücklesen, kann es sich um eine variable Länge handeln endet nicht am Nullterminator.
Also musst du ... erwarten,
dass es a schreibt Textzeile mit einem neuen
Zeilenzeichen am Ende.
Stellen Sie also sicher, dass Sie vertraut sind
mit dem Null-Terminator und entweder explizit mit fputc schreiben, ein einzelnes Zeichen oder schreiben Sie es und es wird im Grunde
das neue Zeilenzeichen hinzufügen am Ende, nachdem Sie es geschrieben haben.
Also erwartet es das Neue Linienzeichen, um dort zu sein.
Das müssen Sie explizit angeben.
Das ist ziemlich einfach in Bezug auf Code.
Du sagst nur fopen.
Fputs, schreibt einen String in die neue Zeile mit dem Dateizeiger.
Und dann schreibt ein anderer fputs hier eine andere Zeichenfolge und dann schließen Sie es.
In diesem Fall haben wir also zwei geschrieben Zeichenfolgen, zwei Codezeilen tatsächlich oder zwei Zeilen
in der Datei und wir öffnete die Datei mit w plus zum
Lesen und Schreiben.
Die Schreibbeispiele sind ziemlich einfach.
Sie rufen einfach ein paar Funktionen auf, fopen und dann fputs und dann fclose.
Nun zum Schreiben einer formatierten Ausgabe, Wir werden fprintf verwenden.
Wieder werden Sie das mit bemerken Den zu lesenden und einzugebenden
ScanF und den Printf fügen Sie einfach hinzu fprefix vor der Funktion
und Sie schreiben eine formatierte Ausgabe.
Also zum Schreiben formatierter Ausgaben Mit fprintf wird eine Ganzzahl zurückgegeben.
Es wird ein Dateistream als Der erste
Parameter und dann die Formatbezeichner werden befolgt durch Kommas mit variabler Anzahl von
Argumenten für jedes Format Bezeichner genau wie printf wirklich.
Das erste Argument für die Funktion ist der Zeiger auf das Dateiobjekt.
Und dann ist das zweite Argument diese variable Anzahl von Argumenten.
Es ist eine c-Zeichenfolge, die eine enthält
oder mehr der folgenden Elemente, Leerzeichen, Nicht-Leerzeichen Zeichen, Formatbezeichner.
Und wieder ist es sehr ähnlich wie printf.
Aber Sie schreiben tatsächlich in eine Datei.
So können Sie formatiert schreiben Ausgabe in eine Datei.
Wenn es erfolgreich ist, wird es zurückkehren die Anzahl der geschriebenen Zeichen.
Sonst wird es Geben Sie eine negative Zahl zurück,
wenn dies nicht erfolgreich ist.
Es sieht ungefähr so aus.
Sie fügen den Standard-E / A-Header hinzu.
Sie erstellen Ihren Dateizeiger.
Sie verwenden dann Ihren Dateizeiger Um eine Textdatei zu öffnen, verwenden Sie sie für w
plus zum Lesen und Schreiben und dann sagst du einfach fprintf.
In diesem Fall sagen wir fprintf.
Wir geben die Datei an Zeiger und dann geben wir vier Zeichenfolgen an,
die durch a getrennt sind Raum und dann ein Prozent d.
Und wir schreiben Hallo, meine Nummer ist 555.
Also wird die Datei tatsächlich haben Die Daten, die beim Schreiben formatiert wurden.
Schauen wir uns das in Codeblöcken an und sehen, wie es aussieht.
Es gibt hier also nicht viel Code.
Wir haben nur wenige Codezeilen.
In Zeile vier sind wir Erstellen unseres Dateizeigers.
Und wieder wollen wir Initialisieren Sie dies auf null.
Wir rufen dann in Zeile sechs fopen an.
Und wir sagen offene Datei. txt, so dass Datei. txt muss vorhanden sein und
entweder dort, wo die c-Quelldatei ausgeführt wird oder wenn Sie das Programm
manuell ausführen, wo immer sich die ausführbare Datei befindet.
Wir werden uns öffnen zum Lesen und Schreiben.
Nachdem wir es geöffnet haben, Wir möchten sicherstellen, dass der
Dateizeiger nicht null ist.
Also wollen wir nicht fp sagen.
Wenn es nicht null ist, dann wir kann mit dem Schreiben von Daten beginnen.
Und in diesem Fall sind wir in Zeile 9 werde formatierte Daten schreiben.
Also, was wir schreiben werden, ist Wir werden eine Zeichenfolge schreiben, zwei
Zeichenfolgen, drei Zeichenfolgen, vier Zeichenfolge und dann eine Ganzzahl.
Und dann sind die nächsten Parameter Nur durch Kommas getrennte
Zeichenfolgen sowie unsere Ganzzahl am Ende.
Ich muss nur das Doppelte reparieren Zitate, weil es nicht richtig funktioniert, also ist
555 genau dort am Ende.
Und es wird dann schließen die Datei und geben Sie es zurück.
Also lasst uns weitermachen und versuchen zu bauen dies und führen Sie es aus und wir werden keine
echte Ausgabe zum Ausführen sehen.
Wir müssen schauen wie die Datei aussieht.
Wenn wir diese Datei kompilieren, Sie möchten sicherstellen, dass
Ihre if-Anweisung ungleich null lautet.
Wenn wir das also wieder ausführen, Sie werden keine Ausgabe
sehen, es wird nur ausgeführt.
Und dann, wenn Sie sich die Datei ansehen Innerhalb des Verzeichnisses sehen Sie,
dass es die Eingabe in einem einzigen enthält Linie, hallo mein Name ist fpp oder bei 555.
So können Sie also formatierte Ausgabe schreiben.
Es ist ziemlich einfach.
Sie könnten neue hinzufügen Linien, wenn Sie wollten.
Am Ende wird eine neue Zeile hinzugefügt. aber Sie könnten hier Backslash n setzen.
Es funktioniert genauso wie printf.
Wieder müssen wir es laufen lassen, wir Sie sehen erst dann eine interessante Ausgabe, wenn
Sie sich die Datei ansehen.
In diesem Fall sehen Sie einen Zeilenvorschub.
Schreiben Sie also die Ausgabe in eine Datei ist ziemlich einfach.
Du willst Zeichen schreiben, du Wenn
Sie fputc ausführen, möchten Sie Zeichenfolgen fputs und formatierte Ausgabe fprintf schreiben.
Wir werden einige Herausforderungen haben helfen Ihnen, sich
noch besser damit vertraut zu machen, aber es ist ziemlich einfach Ausgabe in eine Textdatei schreiben.
Vielen Dank.