Cara Membaca Fail Teks dan Mencetak Semua Rentetan dalam C

Cara Membaca Fail Teks Dan Mencetak Semua Rentetan Dalam C



Membaca fail teks dan mencetak semua rentetan adalah tugas utama yang sering dilakukan oleh pengaturcara C. Adalah penting untuk memahami asas-asas membaca a fail teks dalam C dan bagaimana untuk cetak yang rentetan daripadanya sebelum mencuba tugasan ini.

Pembacaan fail teks dan pencetakan semua rentetan yang terkandung di dalamnya akan ditunjukkan menggunakan pengaturcaraan C dalam artikel ini.







Baca Fail Teks dan Cetak semua Rentetan dalam C

Terdapat empat fungsi untuk membaca fail teks dan mencetak semua rentetan dalam C, iaitu seperti berikut:



Kaedah 1: Fungsi fread().

Data ialah baca dari fail dan disimpan dalam penimbal menggunakan fungsi C fread() . Untuk mengira elemen dalam penimbal tatasusunan, the fread() kaedah membaca daripada aliran input yang disediakan sebagai parameter fungsi. Apabila setiap fungsi aksara dibaca, penunjuk kedudukan fail untuk aliran input yang ditentukan bergerak ke hadapan.



The fread() kaedah dalam C mempunyai sintaks.





saiz_t ketakutan ( batal * array_buffer, size_t saiz , kiraan saiz_t, FILE * file_stream )

Mari lihat parameter fungsi fread() dengan lebih terperinci:



penimbal tatasusunan: Data disimpan sementara dalam penimbal komputer, ruang ingatan. Hujah ini ialah penunjuk yang merujuk kepada tempat dalam ingatan penimbal yang akan mengandungi data membaca daripada aliran input.

saiz: Argumen ini mengarahkan fungsi berapa banyak bait data akan dibaca daripada aliran input untuk setiap blok.

kira: Ia menentukan bilangan aksara yang akan dibaca daripada aliran input data.

file_stream: Ia adalah penunjuk yang merujuk kepada objek FILE.

#include
#include
int utama ( ) {
FAIL * fail ;
penampan char [ 100 ] ;
fail = fopen ( 'C_File.txt' , 'r' ) ;
jika ( fail == NULL ) {
printf ( 'Ralat: tidak dapat membuka fail \n ' ) ;
kembali 1 ;
}
int mengira =fread ( & penimbal, saiz ( char ) , 100 , fail ) ;
tutup ( fail ) ;
printf ( 'Data yang dibaca daripada fail ialah: %s \n ' , penimbal ) ;
printf ( 'Bilangan elemen dibaca: %d' , kira ) ;
tutup ( fail ) ;
kembali 0 ;
}

Dalam contoh ini, kami mentakrifkan saiz penimbal tatasusunan aksara 100 sebelum digunakan fopen() untuk membuka fail teks C_File.txt dalam mod baca. Menggunakan pernyataan if, kami menentukan sama ada fail berjaya dibuka. Langkah berikut ialah membaca sehingga 100 bait data daripada fail menggunakan fread() . Penampan sasaran, dalam contoh ini tatasusunan penimbal, ialah parameter pertama untuk fread(). Hujah kedua, saiz , menentukan saiz setiap item untuk dibaca semasa kita membaca dalam aksara . Input ketiga ialah kuantiti yang perlu dibaca, yang dalam kes ini adalah 100 . The penunjuk fail ialah parameter keempat. Akhir sekali, kita gunakan printf() untuk mencetak data yang dibaca daripada fail dan fclose() untuk menutup fail. Menjalankan program ini akan menghasilkan hasil seperti ini, jika C_File.txt :

Pengeluaran

Kaedah 2: Fungsi fgets().

Bahasa C fgets() kaedah membaca n aksara daripada aliran ke dalam rentetan str. The fgets() kaedah terus membaca aksara dari aliran sehingga (n-1) aksara telah dibaca, aksara baris baharu telah dikesan atau penghujung fail (EOF) telah dicapai.

#include
int utama ( ) {
FAIL * fail ;
penampan char [ 100 ] ;
fail = fopen ( 'C_File.txt' , 'r' ) ;
jika ( fail == NULL ) {
printf ( 'Ralat: tidak dapat membuka fail \n ' ) ;
kembali 1 ;
}
sementara ( fgets ( penampan, 100 , fail ) ) {
printf ( 'Rentetan dibaca daripada fail: %s' , penimbal ) ;
}
tutup ( fail ) ;
kembali 0 ;
}

Contoh ini menggunakan fopen() untuk membuka fail teks dipanggil C_File.txt dalam mod baca selepas mula-mula mengisytiharkan saiz penimbal tatasusunan aksara 100 . Menggunakan pernyataan if, kami menentukan sama ada fail berjaya dibuka. Selepas itu, kami menggunakan gelung sementara dan fgets() untuk membaca baris teks daripada fail menggunakan penuding fail. menggunakan printf() dalam gelung, kami mencetak setiap baris teks. Menjalankan program ini akan memberikan output:

Pengeluaran

Kaedah 3: Fungsi fscanf().

Kaedah perpustakaan standard dipanggil fscanf() menerima pelbagai parameter dan mengubahnya menjadi nilai yang mungkin digunakan oleh aplikasi anda. manakala membaca daripada fail , ia akan mengembalikan rentetan format sebagai ganti apa-apa yang dijangka akan dilihat di dalamnya. Untuk menghalang perisian anda daripada mentafsir rentetan format sebagai sebahagian daripada sintaksnya sendiri, ia mesti dikelilingi dalam petikan ('').

#include
int utama ( ) {
FAIL * fail ;
int num1, num2, num3;
fail = fopen ( 'C_File.txt' , 'r' ) ;
jika ( fail == NULL ) {
printf ( 'Ralat: tidak dapat membuka fail \n ' ) ;
kembali 1 ;
}
fscanf ( fail , '%d %d %d' , & nombor 1, & nombor2, & nombor3 ) ;
printf ( 'Nombor yang dibaca daripada fail ialah: %d, %d, %d \n ' , num1, num2, num3 ) ;
tutup ( fail ) ;
kembali 0 ;
}

Contoh ini membuka fail C_File.txt dalam mod baca dengan terlebih dahulu mengisytiharkan 3 pembolehubah int, num1, num2, dan num3. Menggunakan pernyataan if, kami menentukan sama ada fail berjaya dibuka. Langkah berikut ialah membaca tiga nombor daripada fail menggunakan fscanf() dan juga %d penentu format. Pembolehubah num1, num2, dan num3 adalah tempat nilai disimpan. Akhir sekali, kita gunakan printf() untuk mengeluarkan nilai pembolehubah ini dan fclose() untuk menutup fail. Menjalankan program ini akan menghasilkan keputusan yang ditunjukkan di bawah:

Pengeluaran

Kaedah 4: Fungsi fgetc().

Fail boleh membaca watak demi watak menggunakan fgetc() fungsi. Kod ASCII untuk aksara yang dibaca oleh fungsi ini dikembalikan oleh fungsi ini. Watak dari lokasi yang ditentukan penuding fail dikembalikan. Aksara berikut dibaca sebaik sahaja aksara itu dibaca, mengikut penuding fail. Kaedah ini mengembalikan fail EOF jika penunjuk berada di hujung fail atau jika terdapat masalah.

#include
int utama ( ) {
FAIL * fail ;
char c;
fail = fopen ( 'C_File.txt' , 'r' ) ;
jika ( fail == NULL ) {
printf ( 'Ralat: tidak dapat membuka fail \n ' ) ;
kembali 1 ;
}
sementara ( ( c = fgetc ( fail ) ) ! = EOF ) {
printf ( '%c' , c ) ;
}
tutup ( fail ) ;
kembali 0 ;
}

Dalam contoh ini, kami menggunakan fopen() arahan untuk membuka fail teks C_File.txt dalam mod baca. Menggunakan pernyataan if, kami menentukan sama ada fail berjaya dibuka. Selepas itu, kami menggunakan gelung sementara dan fgetc() untuk membaca aksara daripada fail. Aksara yang diterima daripada fail diberikan kepada pembolehubah c di dalam gelung sebelum dicetak menggunakan printf (). Gelung terus berjalan sehingga EOF (Akhir Fail) pemalar mengesan penghujung fail. Menjalankan program ini akan mendapat hasil berikut, jika C_File.txt mengandungi perkataan 'Linuxint'.

Pengeluaran

Kesimpulan

Dengan menggunakan langkah-langkah yang digariskan di atas, C boleh digunakan untuk membaca fail teks dan cetak semua rentetan ia mengandungi. Ia bermula dengan menggunakan fopen() panggilan sistem untuk membuka fail, diikuti dengan penggunaan daripada fscanf(), fread(), fgets(), fgetc() untuk membaca data. Selepas itu, fail ditutup menggunakan fclose() dan gelung for digunakan untuk mencetak rentetan. Dengan menggunakan teknik ini, C boleh digunakan untuk membantu membaca dan mencetak data dengan cara yang cekap.