C File I / O: Membuat, Membuka, Membaca, Menulis, dan Menutup File

Daftar Isi:

Anonim

C Manajemen file

File dapat digunakan untuk menyimpan data persisten dalam jumlah besar. Seperti banyak bahasa lain, 'C' menyediakan fungsi manajemen file berikut,

  1. Pembuatan file
  2. Membuka file
  3. Membaca file
  4. Menulis ke file
  5. Menutup file

Berikut ini adalah fungsi manajemen file terpenting yang tersedia di 'C,'

fungsi tujuan
fopen () Membuat file atau membuka file yang sudah ada
fclose () Menutup file
fprintf () Menulis blok data ke file
fscanf () Membaca data blok dari file
getc () Membaca satu karakter dari file
putc () Menulis satu karakter ke file
getw () Membaca bilangan bulat dari file
putw () Menulis integer ke file
fseek () Menetapkan posisi penunjuk file ke lokasi yang ditentukan
ftell () Mengembalikan posisi penunjuk file saat ini
mundur () Mengatur penunjuk file di awal file

Dalam tutorial ini, Anda akan belajar-

  • Cara Membuat File
  • Cara Menutup file:
  • Menulis ke File
    • fputc () Fungsi:
    • fputs () Fungsi:
    • fprintf () Fungsi:
  • Membaca data dari File
  • File Interaktif Baca dan Tulis dengan getc dan putc

Cara Membuat File

Kapan pun Anda ingin bekerja dengan file, langkah pertama adalah membuat file. File tidak lain adalah ruang dalam memori tempat data disimpan.

Untuk membuat file dalam program 'C' berikut sintaks digunakan,

FILE *fp;fp = fopen ("file_name", "mode");

Dalam sintaks di atas, file adalah struktur data yang didefinisikan di pustaka standar.

fopen adalah fungsi standar yang digunakan untuk membuka file.

  • Jika file tidak ada di sistem, maka itu dibuat dan kemudian dibuka.
  • Jika file sudah ada di sistem, maka file tersebut langsung dibuka menggunakan fungsi ini.

fp adalah penunjuk file yang menunjuk ke file tipe.

Setiap kali Anda membuka atau membuat file, Anda harus menentukan apa yang akan Anda lakukan dengan file tersebut. File dalam pemrograman 'C' dapat dibuat atau dibuka untuk tujuan membaca / menulis. Mode digunakan untuk menentukan apakah Anda ingin membuka file untuk salah satu tujuan yang diberikan di bawah ini. Berikut ini adalah berbagai jenis mode dalam pemrograman 'C' yang dapat digunakan saat bekerja dengan file.

Mode File Deskripsi
r Buka file untuk membaca. Jika file dalam mode membaca, maka tidak ada data yang dihapus jika file sudah ada di sistem.
w Buka file untuk menulis. Jika file dalam mode menulis, maka file baru dibuat jika file tidak ada sama sekali. Jika file sudah ada di sistem, maka semua data di dalam file tersebut dipotong, dan dibuka untuk tujuan penulisan.
Sebuah Buka file dalam mode append. Jika sebuah file berada dalam mode append, maka file tersebut dibuka. Konten di dalam file tidak berubah.
r + terbuka untuk membaca dan menulis dari awal
w + terbuka untuk membaca dan menulis, menimpa file
a + terbuka untuk membaca dan menulis, menambahkan ke file

Dalam sintaks yang diberikan, nama file dan mode ditetapkan sebagai string sehingga harus selalu diapit tanda kutip ganda.

Contoh:

#include int main() {FILE *fp;fp = fopen ("data.txt", "w");}

Keluaran:

File dibuat di folder yang sama tempat Anda menyimpan kode Anda.

Anda dapat menentukan jalur tempat Anda ingin membuat file

#include int main() {FILE *fp;fp = fopen ("D://data.txt", "w");}

Cara Menutup file

Seseorang harus selalu menutup file setiap kali operasi pada file selesai. Artinya konten dan tautan ke file tersebut dihentikan. Ini mencegah kerusakan file yang tidak disengaja.

'C' menyediakan fungsi fclose untuk melakukan operasi penutupan file. Sintaks fclose adalah sebagai berikut,

fclose (file_pointer);

Contoh:

FILE *fp;fp = fopen ("data.txt", "r");fclose (fp);

Fungsi fclose menggunakan penunjuk file sebagai argumen. File yang terkait dengan penunjuk file kemudian ditutup dengan bantuan fungsi fclose. Ia mengembalikan 0 jika penutupan berhasil dan EOF (akhir file) jika ada kesalahan telah terjadi saat penutupan file.

Setelah menutup file, penunjuk file yang sama juga dapat digunakan dengan file lain.

Dalam pemrograman 'C', file secara otomatis ditutup ketika program dihentikan. Menutup file secara manual dengan menulis fungsi fclose adalah praktik pemrograman yang baik.

Menulis ke File

Di C, saat Anda menulis ke file, karakter baris baru '\ n' harus ditambahkan secara eksplisit.

Pustaka stdio menawarkan fungsi yang diperlukan untuk menulis ke file:

  • fputc (char, file_pointer) : Ini menulis karakter ke file yang ditunjukkan oleh file_pointer.
  • fputs (str, file_pointer) : Ini menulis string ke file yang ditunjukkan oleh file_pointer.
  • fprintf (file_pointer, str, variable_lists) : Ini mencetak string ke file yang ditunjuk oleh file_pointer. Secara opsional, string dapat menyertakan penentu format dan daftar variabel variable_lists.

Program di bawah ini menunjukkan bagaimana melakukan penulisan ke file:

fputc () Fungsi:

#include int main() {int i;FILE * fptr;char fn[50];char str[] = "Guru99 Rocks\n";fptr = fopen("fputc_test.txt", "w"); // "w" defines "writing mode"for (i = 0; str[i] != '\n'; i++) {/* write to file using fputc() function */fputc(str[i], fptr);}fclose(fptr);return 0;}

Keluaran:

Program di atas menulis satu karakter ke dalam file fputc_test.txt hingga mencapai simbol baris berikutnya "\ n" yang menunjukkan bahwa kalimat tersebut berhasil ditulis. Prosesnya adalah mengambil setiap karakter dari array dan menuliskannya ke dalam file.

  1. Dalam program di atas, kami telah membuat dan membuka file bernama fputc_test.txt dalam mode tulis dan mendeklarasikan string kami yang akan ditulis ke dalam file.
  2. Kami melakukan operasi penulisan karakter demi karakter menggunakan for loop dan meletakkan setiap karakter di file kami hingga karakter "\ n" ditemukan kemudian file ditutup menggunakan fungsi fclose.

fputs () Fungsi:

#include int main() {FILE * fp;fp = fopen("fputs_test.txt", "w+");fputs("This is Guru99 Tutorial on fputs,", fp);fputs("We don't need to use for loop\n", fp);fputs("Easier than fputc function\n", fp);fclose(fp);return (0);}

KELUARAN:

  1. Dalam program di atas, kami telah membuat dan membuka file bernama fputs_test.txt dalam mode tulis.
  2. Setelah kita melakukan operasi tulis menggunakan fungsi fputs () dengan menuliskan tiga string berbeda
  3. Kemudian file ditutup menggunakan fungsi fclose.

fprintf () Fungsi:

#include int main() {FILE *fptr;fptr = fopen("fprintf_test.txt", "w"); // "w" defines "writing mode"/* write to file */fprintf(fptr, "Learning C with Guru99\n");fclose(fptr);return 0;}

KELUARAN:

  1. Dalam program di atas kami telah membuat dan membuka file bernama fprintf_test.txt dalam mode tulis.
  2. Setelah operasi tulis dilakukan menggunakan fungsi fprintf () dengan menulis string, kemudian file ditutup menggunakan fungsi fclose.

Membaca data dari File

Ada tiga fungsi berbeda yang didedikasikan untuk membaca data dari sebuah file

  • fgetc (file_pointer): Ini mengembalikan karakter berikutnya dari file yang ditunjukkan oleh penunjuk file. Ketika akhir file telah tercapai, EOF dikirim kembali.
  • fgets (buffer, n, file_pointer): Ini membaca n-1 karakter dari file dan menyimpan string dalam buffer di mana karakter NULL '\ 0' ditambahkan sebagai karakter terakhir.
  • fscanf (file_pointer, conversion_specifiers, variable_adresses) : Ini digunakan untuk mengurai dan menganalisis data. Itu membaca karakter dari file dan memberikan input ke daftar variabel pointer variable_adresses menggunakan penentu konversi. Ingatlah bahwa seperti scanf, fscanf berhenti membaca string saat spasi atau baris baru ditemukan.

Program berikut menunjukkan pembacaan dari file fputs_test.txt menggunakan fungsi fgets (), fscanf () dan fgetc () masing-masing:

#include int main() {FILE * file_pointer;char buffer[30], c;file_pointer = fopen("fprintf_test.txt", "r");printf("----read a line----\n");fgets(buffer, 50, file_pointer);printf("%s\n", buffer);printf("----read and parse data----\n");file_pointer = fopen("fprintf_test.txt", "r"); //reset the pointerchar str1[10], str2[2], str3[20], str4[2];fscanf(file_pointer, "%s %s %s %s", str1, str2, str3, str4);printf("Read String1 |%s|\n", str1);printf("Read String2 |%s|\n", str2);printf("Read String3 |%s|\n", str3);printf("Read String4 |%s|\n", str4);printf("----read the entire file----\n");file_pointer = fopen("fprintf_test.txt", "r"); //reset the pointerwhile ((c = getc(file_pointer)) != EOF) printf("%c", c);fclose(file_pointer);return 0;}

Hasil:

----read a line----Learning C with Guru99----read and parse data----Read String1 |Learning|Read String2 |C|Read String3 |with|Read String4 |Guru99|----read the entire file----Learning C with Guru99

  1. Pada program di atas, kita telah membuka file bernama "fprintf_test.txt" yang sebelumnya ditulis menggunakan fungsi fprintf (), dan berisi string "Belajar C dengan Guru99". Kami membacanya menggunakan fungsi fgets () yang membaca baris demi baris di mana ukuran buffer harus cukup untuk menangani seluruh baris.
  2. Kami membuka kembali file untuk mengatur ulang file penunjuk ke titik awal file. Buat berbagai variabel string untuk menangani setiap kata secara terpisah. Cetak variabel untuk melihat isinya. Fscanf () terutama digunakan untuk mengekstrak dan mengurai data dari file.
  3. Buka kembali file untuk mengatur ulang file penunjuk agar mengarah ke awal file. Membaca data dan mencetaknya dari file karakter demi karakter menggunakan fungsi getc () hingga pernyataan EOF ditemukan
  4. Setelah melakukan operasi pembacaan file menggunakan varian yang berbeda, kami menutup kembali file tersebut menggunakan fungsi fclose.

File Interaktif Baca dan Tulis dengan getc dan putc

Ini adalah operasi file yang paling sederhana. Getc adalah singkatan dari get character, dan putc adalah singkatan dari put character. Kedua fungsi ini digunakan untuk menangani hanya satu karakter pada satu waktu.

Program berikut menunjukkan fungsi penanganan file dalam pemrograman 'C':

#include int main() {FILE * fp;char c;printf("File Handling\n");//open a filefp = fopen("demo.txt", "w");//writing operationwhile ((c = getchar()) != EOF) {putc(c, fp);}//close filefclose(fp);printf("Data Entered:\n");//readingfp = fopen("demo.txt", "r");while ((c = getc(fp)) != EOF) {printf("%c", c);}fclose(fp);return 0;}

Keluaran:

  1. Dalam program di atas kami telah membuat dan membuka file bernama demo dalam mode tulis.
  2. Setelah operasi tulis dilakukan, kemudian file ditutup menggunakan fungsi fclose.
  3. Kami kembali membuka file yang sekarang berisi data dalam mode membaca. A while loop akan dijalankan sampai eof ditemukan. Setelah akhir file ditemukan, operasi akan dihentikan dan data akan ditampilkan menggunakan fungsi printf.
  4. Setelah melakukan operasi pembacaan, file ditutup lagi menggunakan fungsi fclose.

Ringkasan

  • File adalah ruang dalam memori tempat penyimpanan data.
  • Pemrograman 'C' menyediakan berbagai fungsi untuk menangani file.
  • Mekanisme memanipulasi file disebut sebagai manajemen file.
  • Sebuah file harus dibuka sebelum melakukan operasi padanya.
  • File dapat dibuka dalam mode baca, tulis atau tambahkan.
  • Fungsi getc dan putc digunakan untuk membaca dan menulis karakter tunggal.
  • Fungsi fscanf () memungkinkan untuk membaca dan mengurai data dari file
  • Kita dapat membaca (menggunakan fungsi getc ) seluruh file dengan melakukan perulangan untuk menutupi semua file sampai EOF ditemukan
  • Kita dapat menulis ke file setelah membuat namanya, dengan menggunakan fungsi fprintf () dan itu harus memiliki karakter baris baru di akhir teks string.