In diesem Artikel werden nützliche Möglichkeiten erläutert, eine Textdatei in der C -Programmiersprache C zu lesen.
Lesen Sie eine Textdatei in C
Es gibt vier Methoden zum Lesen einer Textdatei in C, die sind.
Methode 1: Verwenden Sie FSCANF () -Funktion zum Lesen einer Textdatei in C
Der fscanf () Die Funktion ist eine Standardbibliotheksfunktion, die eine Reihe von Argumenten aufnimmt und sie in Werte umwandelt, die von Ihrem Programm verwendet werden können. Es findet eine Formatzeichenfolge in der Datei und gibt beim Lesen aus der Datei eine Formatzeichenfolge zurück. Die Formatzeichenfolge muss in Zitate („“) eingeschlossen sein, damit sie nicht von Ihrem Programm als Teil seiner eigenen Syntax interpretiert werden.
Der fscanf () Funktion liest Daten in die Orte, die die Elemente in der Argumentationsliste zur Verfügung gestellt haben. Die Argument-List-Einträge müssen alle auf Variablen hinweisen.
Es gibt entweder EOF (Ende der Datei) oder die Anzahl der Variablen mit ihnen zugewiesenen Werten.
Schauen wir uns ein Beispiel an, um eine Textdatei mit dem zu lesen fscanf () Funktion:
#enthalten
int main ()
Datei* ptr = fopen ("file_name.txt "," r ");
if (ptr == null)
printf ("Es gibt keine solche Datei.");
Rückkehr 0;
Char buf [100];
while (fscanf (ptr, "%s", buf) == 1)
printf ("%s \ n", buf);
Rückkehr 0;
In diesem Code, fopen () Funktion wird verwendet, um die Datei unter der Zeigervariablen PTR zu öffnen. fscanf () Die Funktion wird dann verwendet, um die Datei zu lesen und dann ihren Inhalt zu drucken.
Ausgang
Methode 2: Verwenden Sie Fread () Funktion zum Lesen einer Textdatei in C
Daten aus der Datei werden von der gelesen Fread () Methode und in einem Puffer gespeichert. Bis zum Zählen von Elementen werden von der in einen Array -Puffer gelesen fread () Funktion aus dem Eingangsstrom, der als Funktionsargument geliefert wird.
Wenn die Gesamtzahl der Elemente erfolgreich gelesen wird, wird ein Size_t -Objekt zurückgegeben. Wenn sich dieser Wert von dem vom Programm angegebenen Wert unterscheidet, ist entweder ein Fehler aufgetreten oder das Ende der Datei erreicht.
#enthalten
int main ()
Zeichenpuffer [33];
Datenfluss;
stream = fopen ("file_name.txt "," r ");
int count = fread (& buffer, sizeof (char), 33, stream);
fcLose (stream);
printf ("Daten aus der Datei gelesen: %s \ n", Puffer);
printf ("Anzahl der Elemente gelesen: %d", count);
Rückkehr 0;
In diesem Code die fopen () Funktion wird verwendet, um die Datei und dann die zu öffnen fread () Die Funktion wird dann verwendet, um die Datei zu lesen und dann ihren Inhalt zu drucken. 33 zeigt die Anzahl der Zeichen, die sie aus der Datei lesen wird.
Ausgang
Methode 3: Verwenden Sie die Funktion fGets () zum Lesen einer Textdatei in c
Mit dem fGets () Funktion, eine Zeile wird aus dem angegebenen Stream gelesen und in der entsprechenden String -Variable gespeichert. Wenn (n-1) Zeichen, das neue Zeilenzeichen oder das Ende der Datei gelesen werden oder welches zuerst das Programm endet, endet das Programm.Wenn die Funktion erfolgreich ist, wird die gleiche Zeichenfolge zurückgegeben. Der Inhalt der String wird beibehalten und ein Nullzeiger tritt auf.
Im Falle eines Fehlers bietet es einen Nullzeiger.
#enthalten
int main ()
Datei *fp;
Char Str [60];
fp = fopen ("Datei.txt "," r ");
if (fp == null)
Perror ("Fehler in der Öffnungsdatei");
return (-1);
if (fgets (str, 100, fp)!= Null)
stellt (str);
fcLose (FP);
return (0);
In diesem Code, Datei.txt Die Datei wird von geöffnet von fopen () Funktion und dann fGets () Die Funktion wird dann verwendet, um die Zeichenfolgen in der Datei zu lesen und sie dann zu drucken. 100 zeigt die Anzahl der Saiten, die sie lesen wird.
Ausgang
Methode 4: Verwenden Sie die Funktion fGetC () zum Lesen einer Textdatei in C
Der fGTEC () Funktion wird verwendet, um die Zeichen einzeln zu lesen. Die Funktion gibt dann den ASCII -Code des Charakters zurück, den es gelesen hat. Es gibt den Charakter zurück, der an dem angegebenen Ort des Dateizeigers vorhanden war. Der Dateizeiger geht dann mit dem nächsten Charakter weiter. Wenn ein Fehler vorliegt oder der Zeiger das Ende der Datei erreicht, gibt diese Funktion ein EOF zurück (End-of-Datei).
#enthalten
int main ()
Datei *fp = fopen ("Datei.txt "," r ");
if (fp == null)
Rückkehr 0;
Tun
char c = fGetc (FP);
if (feof (fp))
brechen ;
printf ("%c", c);
während (1);
fcLose (FP);
return (0);
Der "Datei.txtDie Datei wird von der geöffnet fopen () Funktion in diesem Code unter der Zeigervariablen FP. Die Zeichen der Datei werden dann mit dem gelesen fGetc () Methode, die die gelesenen Zeichen druckt.
Ausgang
Abschluss
Lesen von Dateien ist eine Notwendigkeit für jeden Computerbenutzer und insbesondere für einen Entwickler ist es wichtig, dass er mit seinem Code auf Dateien zugreifen kann. Daher werden 4 Methoden oben im Artikel zum Lesen a erwähnt Textdatei Verwenden von C -Sprache. fscanf () Und fread () werden verwendet, um die Dateien ähnlich zu lesen, mit der Ausnahme, die fread () ermöglicht es uns, die Anzahl der Charakterkenner anzugeben, die Benutzer lesen möchten, während fGets () wird verwendet, um eine Dateizeile nach Zeile zu lesen und fGetc () wird verwendet, um ein Dateicharakter nach Zeichen zu lesen.