Kā lasīt teksta failu un izdrukāt visas virknes C

Ka Lasit Teksta Failu Un Izdrukat Visas Virknes C



Teksta faila lasīšana un visa drukāšana stīgas ir galvenais uzdevums, ko bieži veic C programmētāji. Ir svarīgi saprast pamatus lasīšana a teksta fails C valodā un kā drukāt uz stīgas no tā, pirms mēģināt veikt šo uzdevumu.

Šajā rakstā tiks parādīta teksta faila lasīšana un visu tajā esošo virkņu drukāšana, izmantojot C programmēšanu.







Izlasiet teksta failu un izdrukājiet visas virknes C

Ir četras funkcijas teksta faila lasīšanai un visu virkņu drukāšanai C valodā, kas ir šādas:



1. metode: fread() funkcija

Dati ir lasīt no faila un saglabāti buferī, izmantojot C funkciju fread () . Lai skaitītu elementus masīva buferī, fread () metode nolasa no ievades straumes, kas tiek nodrošināta kā funkcijas parametrs. Katrai rakstzīmju funkcijai nolasot, norādītās ievades straumes faila pozīcijas indikators virzās uz priekšu.



The fread () metodei C ir sintakse.





size_t fread ( nederīgs * masīva_buferis, izmērs_t Izmērs , size_t skaits, FILE * file_stream )

Apskatīsim fread() funkcijas parametrus sīkāk:



masīva buferis: Dati īslaicīgi tiek glabāti datora buferī, atmiņas vietā. Šis arguments ir rādītājs, kas norāda uz vietu atmiņā buferī, kurā būs dati lasīt no ievades straumes.

Izmērs: Šis arguments norāda funkciju, cik datu baiti tiks nolasīti no katra bloka ievades straumes.

skaits: Tas norāda, cik rakstzīmju tiks nolasītas no datu ievades straumes.

file_stream: Tas ir rādītājs, kas norāda uz FILE objektu.

#include
#include
int galvenais ( ) {
FILE * failu ;
char buferis [ 100 ] ;
failu = fopen ( 'C_File.txt' , 'r' ) ;
ja ( failu == NULL ) {
printf ( 'Kļūda: nevarēja atvērt failu \n ' ) ;
atgriezties 1 ;
}
starpt skaitīt =bīties ( & buferis, izmērsof ( char ) , 100 , failu ) ;
fclose ( failu ) ;
printf ( 'Dati, kas nolasīti no faila, ir: %s \n ' , buferis ) ;
printf ( 'Nolasīto elementu skaits: %d' , skaitīt ) ;
fclose ( failu ) ;
atgriezties 0 ;
}

Šajā piemērā mēs definējam lieluma rakstzīmju masīva buferi 100 pirms izmantošanas fopen () lai atvērtu teksta failu C_File.txt lasīšanas režīmā. Izmantojot if paziņojumu, mēs nosakām, vai fails tika veiksmīgi atvērts. Nākamais solis ir lasīt līdz 100 baitu datu no faila, izmantojot fread () . Mērķa buferis, šajā gadījumā bufera masīvs, ir pirmais parametrs fread (). Otrais arguments, izmērs , nosaka katra nolasāmā vienuma izmēru rakstzīmēs . Trešā ievade ir nolasāmais daudzums, kas šajā gadījumā ir 100 . The faila rādītājs ir ceturtais parametrs. Visbeidzot, mēs izmantojam printf() lai izdrukātu no faila nolasītos datus un fclose() lai aizvērtu failu. Palaižot šo programmu, tiktu iegūti šādi rezultāti, ja C_File.txt :

Izvade

2. metode: fgets() funkcija

C valoda fgets() metode nolasa n rakstzīmes no straumes virknē str. The fgets() metode turpina lasīt rakstzīmes no straumes līdz (n-1) rakstzīmes ir nolasītas, ir konstatēta jaunrindas rakstzīme vai ir sasniegts faila beigas (EOF).

#include
int galvenais ( ) {
FILE * failu ;
char buferis [ 100 ] ;
failu = fopen ( 'C_File.txt' , 'r' ) ;
ja ( failu == NULL ) {
printf ( 'Kļūda: nevarēja atvērt failu \n ' ) ;
atgriezties 1 ;
}
kamēr ( fgets ( buferis, 100 , failu ) ) {
printf ( 'Virkne nolasīta no faila: %s' , buferis ) ;
}
fclose ( failu ) ;
atgriezties 0 ;
}

Šis piemērs izmanto fopen () lai atvērtu teksta failu ar nosaukumu C_File.txt lasīšanas režīmā pēc rakstzīmju masīva lieluma bufera pirmās deklarēšanas 100 . Izmantojot if paziņojumu, mēs nosakām, vai fails tika veiksmīgi atvērts. Pēc tam mēs nodarbinām kādu laiku cilpu un fgets() lai nolasītu teksta rindiņas no faila, izmantojot faila rādītāju. Izmantojot printf() cilpas ietvaros mēs drukājam katru teksta rindiņu. Šīs programmas palaišana nodrošinātu šādu rezultātu:

Izvade

3. metode: fscanf() funkcija

Standarta bibliotēkas metode, ko sauc fscanf() pieņem virkni parametru un pārveido tos vērtībās, kuras var izmantot jūsu lietojumprogramma. Kamēr lasīšana no faila , tā atgriezīs formāta virkni visa tā vietā, ko tā paredz redzēt. Lai programmatūra neinterpretētu formāta virkni kā daļu no savas sintakses, tā ir jāiekļauj pēdiņās. ('').

#include
int galvenais ( ) {
FILE * failu ;
int num1, num2, num3;
failu = fopen ( 'C_File.txt' , 'r' ) ;
ja ( failu == NULL ) {
printf ( 'Kļūda: nevarēja atvērt failu \n ' ) ;
atgriezties 1 ;
}
fscanf ( failu , '%d %d %d' , & numurs1, & num2, & numurs3 ) ;
printf ( 'No faila nolasītie skaitļi ir: %d, %d, %d \n ' , num1, num2, num3 ) ;
fclose ( failu ) ;
atgriezties 0 ;
}

Šis piemērs atver failu C_File.txt lasīšanas režīmā, vispirms deklarējot 3 int mainīgos, num1, num2 un num3. Izmantojot if paziņojumu, mēs nosakām, vai fails tika veiksmīgi atvērts. Nākamais solis ir nolasīt trīs skaitļus no faila, izmantojot fscanf() un %d formāta norādītājs. Vērtības tiek saglabātas mainīgajos num1, num2 un num3. Visbeidzot, mēs izmantojam printf() lai izvadītu šo mainīgo vērtības un fclose() lai aizvērtu failu. Palaižot šo programmu, tiks parādīti šādi rezultāti:

Izvade

4. metode: fgetc() funkcija

Fails var būt lasīt rakstzīmi pēc rakstzīmes, izmantojot fgetc() funkciju. Šī funkcija atgriež šīs funkcijas nolasītās rakstzīmes ASCII kodu. Tiek atgriezta rakstzīme no faila rādītāja norādītās atrašanās vietas. Nākamā rakstzīme tiek nolasīta, kad rakstzīme ir nolasīta saskaņā ar faila rādītāju. Šī metode atgriež EOF failu, ja rādītājs atrodas faila beigās vai ja ir problēma.

#include
int galvenais ( ) {
FILE * failu ;
char c;
failu = fopen ( 'C_File.txt' , 'r' ) ;
ja ( failu == NULL ) {
printf ( 'Kļūda: nevarēja atvērt failu \n ' ) ;
atgriezties 1 ;
}
kamēr ( ( c = fgetc ( failu ) ) ! = EOF ) {
printf ( '%c' , c ) ;
}
fclose ( failu ) ;
atgriezties 0 ;
}

Šajā gadījumā mēs izmantojam fopen () komandu, lai atvērtu teksta failu C_File.txt lasīšanas režīmā. Izmantojot if paziņojumu, mēs nosakām, vai fails tika veiksmīgi atvērts. Pēc tam mēs nodarbinām kādu laiku cilpu un fgetc() lai nolasītu rakstzīmes no faila. No faila saņemtā rakstzīme tiek piešķirta mainīgajam c cilpas iekšpusē pirms drukāšanas lietošanas printf (). Cilpa turpina darboties līdz EOF (Faila beigas) konstante nosaka faila beigas. Palaižot šo programmu, tiktu iegūti šādi rezultāti, ja C_File.txt satur vārdu 'Linuxint'.

Izvade

Secinājums

Izmantojot iepriekš aprakstītās darbības, C var izmantot, lai lasīt teksta failu un izdrukāt visas virknes tas satur. Tas sākas, izmantojot fopen () sistēmas izsaukums, lai atvērtu failu, kam seko izmantošana no fscanf(), fread(), fgets(), fgetc() lai nolasītu datus. Pēc tam fails tiek aizvērts, izmantojot fclose() un cilpa for tiek izmantota virkņu drukāšanai. Izmantojot šīs metodes, C var izmantot, lai palīdzētu efektīvi nolasīt un drukāt datus.