Hoe een tekstbestand in C te lezen

Hoe Een Tekstbestand In C Te Lezen



Tekst bestanden behoren tot de meest gebruikte bestandstypen op computers. Ze kunnen worden gebruikt voor een breed scala aan taken, zoals het opslaan van tekstdocumenten of broncodes van programma's. Ze worden in het systeem opgeslagen met .tekst verlenging. Terwijl u aan C-code werkt, moet u mogelijk een tekstbestand lezen als onderdeel van uw project of hulp krijgen van het tekstbestand. In plaats van terug te gaan naar de locatie om een ​​tekstbestand te lezen, is het beter om het in een code te lezen.

Dit artikel bespreekt handige manieren om een ​​tekstbestand in de programmeertaal C te lezen.

Lees een tekstbestand in C

Er zijn vier methoden om een ​​tekstbestand in C te lezen, namelijk.







Methode 1: de functie fscanf() gebruiken om een ​​tekstbestand in C te lezen

De fscanf() function is een standaardbibliotheekfunctie die een reeks argumenten opneemt en deze omzet in waarden die door uw programma kunnen worden gebruikt. Het vindt een opmaakstring in het bestand en retourneert een opmaakstring bij het lezen van het bestand. De formaatreeks moet tussen aanhalingstekens (' ') staan, zodat ze niet door uw programma worden geïnterpreteerd als onderdeel van zijn eigen syntaxis.



De fscanf() functie leest gegevens in op de plaatsen die worden geboden door de items in de argumentlijst. De items in de argumentlijst moeten allemaal verwijzen naar variabelen waarvan het type overeenkomt met de typespecificaties in format-string.



Het geeft ofwel EOF (einde van bestand) of het aantal variabelen met toegewezen waarden.





Laten we eens kijken naar een voorbeeld om een ​​tekstbestand te lezen met de fscanf() functie:

#include
int hoofd ( )
{
BESTAND * ptr = open ( 'bestandsnaam.txt' , 'R' ) ;
als ( ptr == NULL ) {
printf ( 'zo'n bestand bestaat niet.' ) ;
opbrengst 0 ;
}
char buf [ 100 ] ;
terwijl ( fscanf ( ptr, '%S ' , buf ) == 1 )
printf ( '%S \N ' , buf ) ;
opbrengst 0 ;
}

In deze code fopen() functie wordt gebruikt om het bestand te openen onder de pointervariabele ptr. fscanf() functie wordt vervolgens gebruikt om het bestand te lezen en vervolgens de inhoud ervan af te drukken.



Uitgang

Methode 2: De functie fread() gebruiken om een ​​tekstbestand in C te lezen

Gegevens uit het bestand worden gelezen door de bang() methode en opgeslagen in een buffer. Tot het aantal items wordt ingelezen in een arraybuffer door de bang() functie uit de invoerstroom, die wordt geleverd als een functieargument.

Wanneer het totale aantal items met succes is gelezen, wordt een size_t-object geretourneerd. Als deze waarde afwijkt van de waarde die door het programma is opgegeven, is er een fout opgetreden of is het einde van het bestand bereikt.

#include
int hoofd ( )
{
char-buffer [ 33 ] ;
BESTAND * stroom;
streamen = openen ( 'bestandsnaam.txt' , 'R' ) ;
int aantal = angst ( & buffer, grootte van ( char ) , 33 , stroom ) ;
fsluiten ( stroom ) ;
printf ( 'Gegevens gelezen uit het bestand: %s \N ' , bufferen ) ;
printf ( 'Aantal gelezen elementen: %d' , graaf ) ;
opbrengst 0 ;
}

In deze code wordt de fopen() functie wordt gebruikt om het bestand te openen en vervolgens de bang() functie wordt vervolgens gebruikt om het bestand te lezen en vervolgens de inhoud ervan af te drukken. 33 toont het aantal tekens dat uit het bestand zal worden gelezen.

Uitgang

Methode 3: de functie fgets() gebruiken om een ​​tekstbestand in C te lezen

Met de fgets() functie, wordt een regel uit de opgegeven stream gelezen en opgeslagen in de overeenkomstige tekenreeksvariabele. Wanneer (n-1) tekens, het teken voor een nieuwe regel of het einde van het bestand worden gelezen, of wat het eerst voorkomt, eindigt het programma. Als de functie succesvol is, wordt dezelfde tekenreeks geretourneerd. De inhoud van de tekenreeks wordt op zijn plaats gehouden en er treedt een null-aanwijzer op als de functie End-of-File bereikt zonder dat er tekens zijn gelezen.

In het geval van een fout geeft het een null-aanwijzer.

#include
int hoofd ( ) {
BESTAND * fp;
char str [ 60 ] ;
fp = fopen ( 'bestand.txt' , 'R' ) ;
als ( fp == NULL ) {
fout ( 'Fout bij openen bestand' ) ;
opbrengst ( - 1 ) ;
}
als ( fgets ( str, 100 , fp ) ! =NUL ) {
zet ( str ) ;
}
fsluiten ( fp ) ;
opbrengst ( 0 ) ;
}

In deze code bestand.txt bestand wordt geopend door fopen() functie en dan fgets() functie wordt vervolgens gebruikt om de strings in het bestand te lezen en ze vervolgens af te drukken. 100 toont het aantal strings dat zal worden gelezen.

Uitgang

Methode 4: de functie fgetc() gebruiken om een ​​tekstbestand in C te lezen

De fgtec() functie wordt gebruikt om de karakters één voor één te lezen. De functie retourneert vervolgens de ASCII-code van het gelezen teken. Het retourneert het karakter dat aanwezig was op de opgegeven plaats van de bestandsaanwijzer. De bestandsaanwijzer gaat dan verder naar het volgende teken. Als er een fout optreedt of de aanwijzer het einde van het bestand bereikt, retourneert deze functie een EOF (End-Of-File).

#include
int hoofd ( )
{
BESTAND * fp = fopen ( 'bestand.txt' , 'R' ) ;
als ( fp == NULL )
opbrengst 0 ;
Doen {
char c = fgetc ( fp ) ;
als ( feof ( fp ) )
pauze ;
printf ( '%C' , C ) ;
} terwijl ( 1 ) ;
fsluiten ( fp ) ;
opbrengst ( 0 ) ;
}

De ' bestand.txt ”-bestand wordt geopend door de fopen() functie in deze code onder de pointervariabele fp. De karakters van het bestand worden vervolgens gelezen met behulp van de fgetc() methode, die de tekens afdrukt die zijn gelezen.

Uitgang

Conclusie

Het lezen van bestanden is een noodzaak voor elke computergebruiker, en vooral voor een ontwikkelaar is het belangrijk dat hij met zijn code toegang heeft tot bestanden. Daarom worden hierboven in het artikel 4 methoden genoemd voor het lezen van a tekstbestand met behulp van C-taal. fscanf() En bang() worden gebruikt om de bestanden op dezelfde manier te lezen, met de uitzondering dat bang() stelt ons in staat om het aantal karakters te specificeren dat de gebruiker wil lezen, terwijl fgets() wordt gebruikt om een ​​bestand regel voor regel te lezen, en fgetc() wordt gebruikt om een ​​bestand teken voor teken te lezen.