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.
- fscanf() untuk membaca fail teks
- fgets() untuk membaca fail teks
- fgetc() untuk membaca fail teks
- fread() untuk membaca fail teks
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:
#includeint 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.
#includeint 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.
#includeint 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).
#includeint 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.