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.
- fscanf() para magbasa ng text file
- fgets() para magbasa ng text file
- fgetc() para magbasa ng text file
- fread() para magbasa ng text file
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:
#includeint 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.
#includeint 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.
#includeint 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).
#includeint 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.