Cara Membaca Fail Teks dalam C

Cara Membaca Fail Teks Dalam C



Fail teks adalah antara jenis fail yang paling banyak digunakan pada komputer. Ia mungkin digunakan untuk pelbagai jenis tugas, seperti menyimpan dokumen teks atau kod sumber program. Mereka disimpan dalam sistem dengan .txt sambungan. Semasa mengerjakan kod C, anda mungkin perlu membaca fail teks sebagai sebahagian daripada projek anda atau untuk mendapatkan bantuan daripada fail teks. Daripada kembali ke lokasi untuk membaca fail teks, lebih baik membacanya di dalam kod.

Artikel ini membincangkan cara berguna untuk membaca fail teks dalam bahasa pengaturcaraan C.

Baca Fail Teks dalam C

Terdapat empat kaedah untuk membaca fail teks dalam C, iaitu.







Kaedah 1: Menggunakan Fungsi fscanf() untuk Membaca Fail Teks dalam C

The fscanf() function ialah fungsi perpustakaan standard yang mengambil pelbagai hujah dan menukarkannya kepada nilai yang boleh digunakan oleh program anda. Ia mencari rentetan format di dalam fail dan mengembalikan rentetan format apabila membaca daripada fail. Rentetan format mesti disertakan dalam petikan (“ ”) supaya ia tidak ditafsirkan oleh program anda sebagai sebahagian daripada sintaksnya sendiri.



The fscanf() fungsi membaca data ke tempat yang disediakan oleh item dalam senarai argumen. Entri senarai argumen mesti semua menunjukkan pembolehubah yang jenisnya sepadan dengan penentu jenis dalam rentetan format.



Ia memberikan sama ada EOF (akhir fail) atau bilangan pembolehubah dengan nilai yang diberikan kepada mereka.





Mari lihat contoh untuk membaca fail teks menggunakan fscanf() fungsi:

#include
int utama ( )
{
FAIL * ptr = fopen ( 'nama_fail.txt' , 'r' ) ;
jika ( ptr == NULL ) {
printf ( 'tiada fail sedemikian wujud.' ) ;
kembali 0 ;
}
char buf [ 100 ] ;
sementara ( fscanf ( ptr, '%s' , buf ) == 1 )
printf ( '%s \n ' , buf ) ;
kembali 0 ;
}

Dalam kod ini, fopen() fungsi digunakan untuk membuka fail di bawah pembolehubah penunjuk ptr. fscanf() fungsi kemudiannya digunakan untuk membaca fail dan kemudian mencetak kandungannya.



Pengeluaran

Kaedah 2: Menggunakan Fungsi fread() untuk Membaca Fail Teks dalam C

Data daripada fail dibaca oleh Fread() kaedah dan disimpan dalam penimbal. Sehingga mengira item dibaca ke dalam penimbal tatasusunan oleh fread() fungsi daripada aliran input, yang dibekalkan sebagai hujah fungsi.

Apabila jumlah item berjaya dibaca, objek size_t dikembalikan. Jika nilai ini berbeza daripada nilai yang ditentukan oleh atur cara, sama ada ralat berlaku atau penghujung fail telah dicapai.

#include
int utama ( )
{
penampan char [ 33 ] ;
FAIL * aliran;
aliran = fopen ( 'nama_fail.txt' , 'r' ) ;
int count = fread ( & penimbal, saiz ( char ) , 33 , aliran ) ;
tutup ( aliran ) ;
printf ( 'Data dibaca daripada fail: %s \n ' , penimbal ) ;
printf ( 'Bilangan elemen dibaca: %d' , kira ) ;
kembali 0 ;
}

Dalam kod ini, fopen() fungsi digunakan untuk membuka fail dan kemudiannya fread() fungsi kemudiannya digunakan untuk membaca fail dan kemudian mencetak kandungannya. 33 menunjukkan bilangan aksara yang akan dibaca daripada fail.

Pengeluaran

Kaedah 3: Menggunakan Fungsi fgets() untuk Membaca Fail Teks dalam C

Dengan fgets() fungsi, baris dibaca daripada aliran yang ditentukan dan disimpan dalam pembolehubah rentetan yang sepadan. Apabila aksara (n-1), aksara baris baharu atau penghujung fail dibaca, atau yang mana berlaku dahulu, atur cara akan tamat. Jika fungsi berjaya, rentetan yang sama dikembalikan. Kandungan rentetan dikekalkan di tempatnya dan penuding nol berlaku jika fungsi mencecah End-of-File tanpa aksara dibaca.

Sekiranya berlaku kegagalan, ia menyediakan penunjuk nol.

#include
int utama ( ) {
FAIL * fp;
char str [ 60 ] ;
fp = fopen ( 'file.txt' , 'r' ) ;
jika ( fp == NULL ) {
kesalahan ( 'Ralat semasa membuka fail' ) ;
kembali ( - 1 ) ;
}
jika ( fgets ( str, 100 , fp ) ! =NULL ) {
meletakkan ( str ) ;
}
tutup ( fp ) ;
kembali ( 0 ) ;
}

Dalam kod ini, file.txt fail dibuka oleh fopen() fungsi dan kemudian fgets() fungsi kemudiannya digunakan untuk membaca rentetan dalam fail dan kemudian mencetaknya. 100 menunjukkan bilangan rentetan yang akan dibacanya.

Pengeluaran

Kaedah 4: Menggunakan Fungsi fgetc() untuk Membaca Fail Teks dalam C

The fgtec() fungsi digunakan untuk membaca aksara satu persatu. Fungsi itu kemudian mengembalikan kod ASCII bagi aksara yang telah dibacanya. Ia mengembalikan watak yang terdapat di tempat penuding fail yang dinyatakan. Penunjuk fail kemudian bergerak ke aksara seterusnya. Jika terdapat ralat atau penunjuk mencapai penghujung fail, fungsi ini mengembalikan EOF (End-Of-File).

#include
int utama ( )
{
FAIL * fp = fopen ( 'file.txt' , 'r' ) ;
jika ( fp == NULL )
kembali 0 ;
buat {
char c = fgetc ( fp ) ;
jika ( feof ( fp ) )
rehat ;
printf ( '%c' , c ) ;
} sementara ( 1 ) ;
tutup ( fp ) ;
kembali ( 0 ) ;
}

' file.txt ” fail dibuka oleh fopen() fungsi dalam kod ini di bawah pembolehubah penuding fp. Aksara fail kemudiannya dibaca menggunakan fgetc() kaedah, yang mencetak aksara yang telah dibaca.

Pengeluaran

Kesimpulan

Membaca fail adalah satu keperluan bagi setiap pengguna komputer, dan terutamanya bagi pembangun, adalah penting bahawa dia boleh mengakses fail menggunakan kodnya. Oleh itu 4 kaedah disebutkan di atas dalam artikel untuk membaca a fail teks menggunakan Bahasa C. fscanf() dan fread() digunakan untuk membaca fail yang serupa, kecuali itu fread() membolehkan kami menentukan bilangan pengguna aksara yang ingin dibaca, manakala fgets() digunakan untuk membaca fail baris demi baris, dan fgetc() digunakan untuk membaca fail aksara demi aksara.