Com llegir un fitxer de text en C

Com Llegir Un Fitxer De Text En C



Fitxers de text es troben entre els tipus de fitxers més utilitzats als ordinadors. Es poden utilitzar per a una gran varietat de tasques, com ara emmagatzemar documents de text o codis font del programa. Es guarden al sistema amb .txt extensió. Mentre treballeu amb codi C, és possible que hàgiu de llegir un fitxer de text com a part del vostre projecte o per obtenir ajuda del fitxer de text. En lloc de tornar a la ubicació per llegir un fitxer de text, és millor llegir-lo dins d'un codi.

Aquest article tracta maneres útils de llegir un fitxer de text en el llenguatge de programació C.

Llegiu un fitxer de text en C

Hi ha quatre mètodes per llegir un fitxer de text en C, que són.







Mètode 1: ús de la funció fscanf() per llegir un fitxer de text en C

El fscanf() La funció és una funció de biblioteca estàndard que pren una matriu d'arguments i els converteix en valors que pot utilitzar el vostre programa. Troba una cadena de format dins del fitxer i retorna una cadena de format quan llegeix el fitxer. La cadena de format s'ha d'incloure entre cometes (“”) perquè el vostre programa no les interpreti com a part de la seva pròpia sintaxi.



El fscanf() La funció llegeix les dades als llocs que proporcionen els elements de la llista d'arguments. Totes les entrades de la llista d'arguments han d'apuntar a variables els tipus de les quals coincideixen amb els especificadors de tipus de la cadena de format.



Ofereix EOF (final del fitxer) o el nombre de variables amb valors assignats.





Vegem un exemple per llegir un fitxer de text utilitzant el fscanf() funció:

#inclou
int principal ( )
{
DOSSIER * ptr = fopen ( 'nom_fitxer.txt' , 'r' ) ;
si ( ptr == NULL ) {
imprimirf ( 'no existeix aquest fitxer'. ) ;
tornar 0 ;
}
char buf [ 100 ] ;
mentre ( fscanf ( ptr, '%s' , buf ) == 1 )
imprimirf ( '%s \n ' , buf ) ;
tornar 0 ;
}

En aquest codi, fopen() La funció s'utilitza per obrir el fitxer sota la variable punter ptr. fscanf() A continuació, s'utilitza la funció per llegir el fitxer i després imprimir-ne el contingut.



Sortida

Mètode 2: ús de la funció fread() per llegir un fitxer de text en C

Les dades del fitxer les llegeix Fread () mètode i emmagatzemat en una memòria intermèdia. Es llegeixen fins a un recompte d'elements en un buffer de matriu fread () funció del flux d'entrada, que es proporciona com a argument de funció.

Quan el nombre total d'elements es llegeix correctament, es retorna un objecte size_t. Si aquest valor és diferent del valor especificat pel programa, s'ha produït un error o s'ha arribat al final del fitxer.

#inclou
int principal ( )
{
buffer de caràcters [ 33 ] ;
DOSSIER * corrent;
rierol = fopen ( 'nom_fitxer.txt' , 'r' ) ;
int count = fread ( & buffer, mida de ( char ) , 33 , corrent ) ;
f tancar ( corrent ) ;
imprimirf ( 'Dades llegides del fitxer: %s \n ' , amortidor ) ;
imprimirf ( 'Nombre d'elements llegits: %d' , comptar ) ;
tornar 0 ;
}

En aquest codi, el fopen() La funció s'utilitza per obrir el fitxer i després el fread () A continuació, s'utilitza la funció per llegir el fitxer i després imprimir-ne el contingut. 33 mostra el nombre de caràcters que llegirà del fitxer.

Sortida

Mètode 3: utilitzant la funció fgets() per llegir un fitxer de text en C

Amb el fgets() funció, es llegeix una línia del flux especificat i s'emmagatzema a la variable de cadena corresponent. Quan es llegeixen (n-1) caràcters, el caràcter de nova línia o el final del fitxer, o el que passi primer, el programa finalitza. Si la funció té èxit, es retorna la mateixa cadena. El contingut de la cadena es manté al seu lloc i es produeix un punter nul si la funció arriba al final del fitxer sense llegir cap caràcter.

En cas d'error, proporciona un punter nul.

#inclou
int principal ( ) {
DOSSIER * fp;
car str [ 60 ] ;
fp = fopen ( 'fitxer.txt' , 'r' ) ;
si ( fp == NULL ) {
terror ( 'Error en obrir el fitxer' ) ;
tornar ( - 1 ) ;
}
si ( fgets ( carrer, 100 , fp ) ! =NULL ) {
posa ( str ) ;
}
f tancar ( fp ) ;
tornar ( 0 ) ;
}

En aquest codi, fitxer.txt el fitxer s'obre per fopen() funció i després fgets() A continuació, s'utilitza la funció per llegir les cadenes del fitxer i després imprimir-les. 100 mostra el nombre de cadenes que llegirà.

Sortida

Mètode 4: utilitzant la funció fgetc() per llegir un fitxer de text en C

El fgtec() La funció s'utilitza per llegir els caràcters un per un. Aleshores, la funció retorna el codi ASCII del caràcter que ha llegit. Retorna el caràcter que estava present al lloc indicat del punter del fitxer. Aleshores, el punter del fitxer passa al caràcter següent. Si hi ha un error o el punter arriba al final del fitxer, aquesta funció retorna un EOF (End-Of-File).

#inclou
int principal ( )
{
DOSSIER * fp = fopen ( 'fitxer.txt' , 'r' ) ;
si ( fp == NULL )
tornar 0 ;
fer {
char c = fgetc ( fp ) ;
si ( feof ( fp ) )
trencar ;
imprimirf ( '%c' , c ) ;
} mentre ( 1 ) ;
f tancar ( fp ) ;
tornar ( 0 ) ;
}

El ' fitxer.txt ” obre el fitxer fopen() funció en aquest codi sota la variable punter fp. A continuació, es llegeixen els caràcters del fitxer amb el fgetc() mètode, que imprimeix els caràcters que s'han llegit.

Sortida

Conclusió

Llegir fitxers és una necessitat per a tots els usuaris d'ordinadors, i sobretot per a un desenvolupador, és important que pugui accedir als fitxers utilitzant el seu codi. Per tant, s'esmenten 4 mètodes anteriors a l'article per llegir a fitxer de text utilitzant el llenguatge C. fscanf() i fread () s'utilitzen per llegir els fitxers de la mateixa manera, amb l'excepció que fread () ens permet especificar el nombre de caràcters que l'usuari vol llegir, mentre fgets() s'utilitza per llegir un fitxer línia per línia, i fgetc() s'utilitza per llegir un fitxer caràcter per caràcter.