Paano Magbasa ng Text File sa C

Paano Magbasa Ng Text File Sa C



Mga text file ay kabilang sa mga pinakamalawak na ginagamit na uri ng file sa mga computer. Maaaring gamitin ang mga ito para sa iba't ibang uri ng mga gawain, tulad ng pag-iimbak ng mga tekstong dokumento o source code ng program. Sila ay nai-save sa system na may .txt extension. Habang nagtatrabaho sa C code, maaaring kailanganin mong magbasa ng text file bilang bahagi ng iyong proyekto o upang makakuha ng tulong mula sa text file. Sa halip na bumalik sa lokasyon upang magbasa ng isang text file, mas mahusay na basahin ito sa loob ng isang code.

Tinatalakay ng artikulong ito ang mga kapaki-pakinabang na paraan para magbasa ng text file sa C programming language.

Magbasa ng Text File sa C

Mayroong apat na paraan upang basahin ang isang text file sa C, na.







Paraan 1: Paggamit ng fscanf() Function para Magbasa ng Text File sa C

Ang fscanf() Ang function ay isang karaniwang function ng library na kumukuha ng isang hanay ng mga argumento at kino-convert ang mga ito sa mga halaga na maaaring magamit ng iyong programa. Nakahanap ito ng format na string sa loob ng file at nagbabalik ng format na string kapag nagbabasa mula sa file. Ang format na string ay dapat na nakapaloob sa loob ng mga quote (“ ”) upang hindi sila mabigyang-kahulugan ng iyong programa bilang bahagi ng sarili nitong syntax.



Ang fscanf() function na nagbabasa ng data sa mga lugar na ibinigay ng mga item sa argument-list. Ang mga entry sa listahan ng argumento ay dapat tumuro sa mga variable na ang mga uri ay tumutugma sa mga specifier ng uri sa format-string.



Nagbibigay ito ng alinman sa EOF (end of file) o ang bilang ng mga variable na may mga value na itinalaga sa kanila.





Tingnan natin ang isang halimbawa upang basahin ang isang text file gamit ang fscanf() function:

#include
int pangunahing ( )
{
FILE * ptr = fopen ( 'file_name.txt' , 'r' ) ;
kung ( ptr == NULL ) {
printf ( 'walang ganoong file na umiiral.' ) ;
bumalik 0 ;
}
char buf [ 100 ] ;
habang ( fscanf ( ptr, '%s ' , buf ) == 1 )
printf ( '%s \n ' , buf ) ;
bumalik 0 ;
}

Sa code na ito, fopen() function ay ginagamit upang buksan ang file sa ilalim ng pointer variable ptr. fscanf() Ang function ay pagkatapos ay ginagamit upang basahin ang file at pagkatapos ay i-print ang nilalaman nito.



Output

Paraan 2: Paggamit ng fread() Function para Magbasa ng Text File sa C

Ang data mula sa file ay binabasa ng Fread() paraan at nakaimbak sa isang buffer. Hanggang sa bilang ng mga item ay binabasa sa isang array buffer ng fread() function mula sa input stream, na ibinibigay bilang function argument.

Kapag matagumpay na nabasa ang kabuuang bilang ng mga item, ibabalik ang isang size_t object. Kung ang value na ito ay iba sa value na tinukoy ng program, maaaring may naganap na error o naabot ang dulo ng file.

#include
int pangunahing ( )
{
char buffer [ 33 ] ;
FILE * stream;
stream = fopen ( 'file_name.txt' , 'r' ) ;
int count = fread ( at buffer, laki ng ( char ) , 33 , stream ) ;
fclose ( stream ) ;
printf ( 'Nabasa ang data mula sa file: %s \n ' , buffer ) ;
printf ( 'Bilang ng mga elementong nabasa: %d' , bilangin ) ;
bumalik 0 ;
}

Sa code na ito, ang fopen() Ang function ay ginagamit upang buksan ang file at pagkatapos ay ang fread() Ang function ay pagkatapos ay ginagamit upang basahin ang file at pagkatapos ay i-print ang nilalaman nito. Ipinapakita ng 33 ang bilang ng mga character na babasahin nito mula sa file.

Output

Paraan 3: Paggamit ng fgets() Function para Magbasa ng Text File sa C

Kasama ang fgets() function, binabasa ang isang linya mula sa tinukoy na stream at iniimbak sa kaukulang string variable. Kapag (n-1) na mga character, ang newline na character, o ang dulo ng file ay binasa, o alinman ang mauna, ang programa ay magtatapos. Kung ang function ay matagumpay, ang parehong string ay ibabalik. Ang mga nilalaman ng string ay nananatili sa lugar at ang isang null pointer ay nangyayari kung ang function ay tumama sa End-of-File na walang mga character na nabasa.

Kung sakaling mabigo, nagbibigay ito ng null pointer.

#include
int pangunahing ( ) {
FILE * fp;
char str [ 60 ] ;
fp = fopen ( 'file.txt' , 'r' ) ;
kung ( fp == NULL ) {
kaguluhan ( 'Error sa pagbubukas ng file' ) ;
bumalik ( - 1 ) ;
}
kung ( fgets ( str, 100 , fp ) ! =NULL ) {
naglalagay ( str ) ;
}
fclose ( fp ) ;
bumalik ( 0 ) ;
}

Sa code na ito, file.txt Ang file ay binuksan ni fopen() function at pagkatapos fgets() Ang function ay pagkatapos ay ginagamit upang basahin ang mga string sa file at pagkatapos ay i-print ang mga ito. Ipinapakita ng 100 ang bilang ng mga string na babasahin nito.

Output

Paraan 4: Paggamit ng fgetc() Function para Magbasa ng Text File sa C

Ang fgtec() Ang function ay ginagamit upang basahin ang mga character nang isa-isa. Ibinabalik ng function ang ASCII code ng character na nabasa nito. Ibinabalik nito ang character na naroroon sa nakasaad na lugar ng file pointer. Ang file pointer ay lilipat sa susunod na character. Kung mayroong isang error o ang pointer ay umabot sa dulo ng file, ang function na ito ay nagbabalik ng isang EOF (End-Of-File).

#include
int pangunahing ( )
{
FILE * fp = fopen ( 'file.txt' , 'r' ) ;
kung ( fp == NULL )
bumalik 0 ;
gawin {
char c = fgetc ( fp ) ;
kung ( feof ( fp ) )
pahinga ;
printf ( '%c' , c ) ;
} habang ( 1 ) ;
fclose ( fp ) ;
bumalik ( 0 ) ;
}

Ang ' file.txt ” file ay binuksan ng fopen() function sa code na ito sa ilalim ng pointer variable fp. Ang mga character ng file ay pagkatapos ay basahin gamit ang fgetc() paraan, na nagpi-print ng mga character na binasa.

Output

Konklusyon

Ang pagbabasa ng mga file ay isang pangangailangan para sa bawat gumagamit ng computer, at lalo na para sa isang developer, mahalaga na ma-access niya ang mga file gamit ang kanyang code. Samakatuwid 4 na pamamaraan ang binanggit sa itaas sa artikulo para sa pagbabasa a text file gamit ang C Language. fscanf() at fread() ay ginagamit upang basahin ang mga file nang katulad, maliban doon fread() nagbibigay-daan sa amin na tukuyin ang bilang ng character na gustong basahin ng user, habang fgets() ay ginagamit upang basahin ang isang file sa bawat linya, at fgetc() ay ginagamit upang basahin ang isang file ng character sa pamamagitan ng character.