Latest web development tutorials

C Dokument Alphabetisierung

Zurück Kapitel haben wir erklärt die Standard-Ein- und Ausgabegeräte C Sprachverarbeitung. In diesem Kapitel werden wir die C-Programmierer vorstellen, wie Öffnen, Schließen, Text oder Binär-Dateien zu erstellen.

Eine Datei, ob es sich um Text oder Binär-Daten vorhanden sind, sind repräsentativ für eine Reihe von Bytes. C-Sprache-Funktion bietet nicht nur Zugriff auf die oberste Ebene, sondern bietet auch die zugrunde liegende (OS) genannt Dateien auf dem Gerät gespeichert zu verarbeiten. In diesem Kapitel wird die Bedeutung der Aufruf der Datei-Manager erklären.

Öffnen Sie die Datei

Sie können die Funktionfopen () verwenden , um ein neues Dokument zu erstellen oder eine vorhandene Datei zu öffnen, wird der Anruf ein Objekt vom Typ FILE initialisieren,Dateityp enthält alle notwendigen Informationen , um den Fluss zu steuern. Hier ist der Prototyp dieses Aufrufs:

FILE *fopen( const char * filename, const char * mode );

Hier Dateiname ist eine Zeichenfolge verwendet , um die Dateizugriffsmodusals Wert zu benennen kann einen der folgenden Werte sein:

模式描述
r打开一个已有的文本文件,允许读取文件。
w打开一个文本文件,允许写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会从文件的开头写入内容。
a打开一个文本文件,以追加模式写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会在已有的文件内容中追加内容。
r+打开一个文本文件,允许读写文件。
w+打开一个文本文件,允许读写文件。如果文件已存在,则文件会被截断为零长度,如果文件不存在,则会创建一个新文件。
a+打开一个文本文件,允许读写文件。如果文件不存在,则会创建一个新文件。读取会从文件的开头开始,写入则只能是追加模式。

Wenn der Prozess eine binäre Datei ist, müssen Sie die folgende Zugriffsmodus Zugriffsmodus zu verwenden, um die oben zu ersetzen:

"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"

Schließen Sie die Datei

;

Um eine Datei zu schließen, verwenden Sie fclose () Funktion. Funktionsprototyp ist wie folgt:

 int fclose( FILE *fp );

Wenn dies gelingt, schließen Sie dieDatei fclose () Funktion gibt Null, tritt ein Fehler beim Schließen der Datei, EOFdie Funktionzurückgibt.Diese Funktion ist in der Tat, werden die Daten im Puffer zu löschen, schließen Sie die Datei und gibt den gesamten Speicher für die Datei. EOF ist eine Konstante in der Header - Dateistdio.h definiert in.

C Standard-Bibliothek bietet eine Vielzahl von Funktionen ein Zeichen oder in Form von Zeichenfolge fester Länge zu drücken Dateien zu lesen und zu schreiben.

Datei schreiben

Hier wird die Schreib Zeichen in einen Strom von der einfachsten Funktion:

int fputc( int c, FILE *fp );

Funktionfputc () schreibt das Zeichen c auf den Wert des Parameters fp Punkte in den Ausgabestream.Wenn der Schreibvorgang erfolgreich ist, gibt es das Zeichen geschrieben, wenn ein Fehler auftritt, wirdEOF zurückgegeben.Sie können die folgenden Funktionen auf einen nullterminierten String in den Stream geschrieben werden verwenden:

int fputs( const char *s, FILE *fp );

Funktionfputs () schreibt die Zeichenkette sPunkte an den Ausgangsstrom zu fp. Wenn der Schreibvorgang erfolgreich ist, wird es einen nicht negativen Wert zurück , wenn ein Fehler auftritt, wirdEOF zurückgegeben.Sie können auchint fprintf (FILE * fp, const verwenden char * Format, ...) Funktion zu schreiben , um eine Zeichenfolge zu werden in eine Datei geschrieben.Versuchen Sie, die folgenden Beispiele:

Hinweis: Stellen Sie sicher , dass Sie dasVerzeichnis/ tmpzur Verfügung haben, wenn dieses Verzeichnis nicht vorhanden ist , müssen Sie das Verzeichnis auf Ihrem Computer zu erstellen.

#include <stdio.h>

main()
{
   FILE *fp;

   fp = fopen("/tmp/test.txt", "w+");
   fprintf(fp, "This is testing for fprintf...\n");
   fputs("This is testing for fputs...\n", fp);
   fclose(fp);
}

Wenn der obige Code kompiliert und ausgeführt wird , wird es in das Verzeichnis / tmp erstellt werden, eine neue Dateitest.txt, und verwenden Sie zwei verschiedene Funktionen zwei Zeilen geschrieben.Lassen Sie uns die Datei lesen.

Lesen Sie die Datei

Hier ist die einfachste Funktion ein einzelnes Zeichen aus einer Datei zu lesen:

int fgetc( FILE * fp );

fgetc () Funktion liest ein Zeichen aus der Eingabedatei durch fp hingewiesen.Der Rückgabewert ist ein Zeichen zu lesen, wenn ein Fehler zurückkehrtEOF auftritt.Die folgende Funktion ermöglicht es Ihnen, einen String aus dem Stream zu lesen:

char *fgets( char *buf, int n, FILE *fp );

Funktionfgets () liest n aus dem Eingangsstrom , auf den fp - das ein Zeichen.Es wird die Zeichenfolge in den Pufferbuf kopiert gelesen und schließlich fügt einen Null- Zeichen die Zeichenfolge zu beenden.

Wenn die Funktion, bevor das letzte Zeichen ein Newline-Zeichen '\ n' am Ende der Datei oder EOF Lesen begegnet, nur zurückkehren, um die Zeichen zu lesen, einschließlich Newline. Sie können auchint fscanf (FILE * fp, const verwenden char * Format, ...) Funktion eine Zeichenfolge aus einer Datei zu lesen, aber angesichts des ersten Leerzeichen, wird es aufhören zu lesen.

#include <stdio.h>

main()
{
   FILE *fp;
   char buff[255];

   fp = fopen("/tmp/test.txt", "r");
   fscanf(fp, "%s", buff);
   printf("1 : %s\n", buff );

   fgets(buff, 255, (FILE*)fp);
   printf("2: %s\n", buff );
   
   fgets(buff, 255, (FILE*)fp);
   printf("3: %s\n", buff );
   fclose(fp);

}

Wenn der obige Code kompiliert und ausgeführt wird, wird es Dateien auf einem Teil erstellt lesen, die folgenden Ergebnisse erzielt:

1 : This
2: is testing for fprintf...

3: This is testing for fputs...

Lesen Siezuerst fscanf () -Methode nur das,weil es einen Platz in den Rücken stößt. Als nächstes rufen Sie diefgets () , um den Rest zu lesen, bis zum Ende der Zeile.Schließlich rufenfgets () die zweite Linie in ihrer Gesamtheit zu lesen.

Binary I / O-Funktionen

Die beiden folgenden Funktionen für binäre Ein- und Ausgänge:

size_t fread(void *ptr, size_t size_of_elements, 
             size_t number_of_elements, FILE *a_file);
              
size_t fwrite(const void *ptr, size_t size_of_elements, 
             size_t number_of_elements, FILE *a_file);

Diese beiden Funktionen werden verwendet, um Lese- und Schreibspeicherblock - in der Regel ein Array oder eine Struktur.