Menguasai File I/O dalam C: Membuat, Membuka, Membaca, Menulis, dan Menutup File dengan Percaya Diri
Gambaran Umum Manajemen File dalam C
Dalam C, perpustakaan standar stdio.h menawarkan rangkaian komprehensif fungsi untuk bekerja dengan data persisten di disk. Dengan menguasai alat-alat ini Anda dapat secara andal membuat, membaca, menulis, dan menutup file sambil memastikan integritas data dan stabilitas program.
Fungsi Penanganan File Utama
Fungsi
Tujuan
fopen()
Membuka file yang ada atau membuat yang baru.
fclose()
Menutup file yang terbuka dan melepaskan sumber daya.
fprintf()
Menulis teks terformat ke file.
fscanf()
Membaca data terformat dari file.
getc()
Mengambil satu karakter dari file.
putc()
Menulis satu karakter ke file.
fgets()
Membaca seluruh baris ke dalam buffer.
fputs()
Menulis string ke file tanpa formatting.
fseek()
Memindahkan pointer file ke lokasi tertentu.
ftell()
Mengambil posisi pointer file saat ini.
rewind()
Mengatur ulang pointer file ke awal.
File Mode Dijelaskan
Mode
Deskripsi
"r"
Buka untuk membaca; gagal jika file tidak ada.
"w"
Buka untuk menulis; memotong file yang ada atau membuat yang baru.
"a"
Buka untuk menambahkan; tulisan ditambahkan di akhir file.
"r+"
Buka untuk membaca dan menulis dari awal.
"w+"
Buka untuk membaca dan menulis; memotong file yang ada.
"a+"
Buka untuk membaca dan menulis; menambahkan data baru.
Membuat File
Untuk membuat atau membuka file Anda pertama-tama mendeklarasikan pointer file, lalu memanggil fopen() dengan nama file dan mode yang diinginkan:
FILE *fp; fp = fopen("data.txt", "w");
Jika file tidak ada, fopen() membuatnya. Jika sudah ada, mode menentukan apakah kontennya dipertahakan atau ditimpa.
Anda juga dapat menentukan jalur absolut:
fp = fopen("D:/data.txt", "w");
Gambar yang menggambarkan langkah pembuatan file:
Menutup File
Setelah selesai semua operasi file, selalu panggil fclose() untuk melepaskan deskriptor file dan membuang buffer:
fp = fopen("data.txt", "r"); ... fclose(fp);
Fungsi mengembalikan 0 pada sukses dan EOF pada kesalahan. Meskipun sistem operasi secara otomatis menutup file saat program keluar, penutupan eksplisit dianggap praktik terbaik.
Menulis ke File
Saat menulis, ingat untuk menambahkan karakter baris baru (\n) secara eksplisit di tempat diperlukan. Berikut adalah fungsi penulisan yang paling umum:
fputc(char, FILE*) – Menulis satu karakter.
fputs(const char*, FILE*) – Menulis string yang diakhiri null.
fprintf(FILE*, const char*, …) – Menulis output terformat.
Contoh: fputc()
#include <stdio.h> int main() { int i; FILE *fptr; const char *str = "Guru99 Rocks\n"; fptr = fopen("fputc_test.txt", "w"); for (i = 0; str[i] != '\n'; i++) { fputc(str[i], fptr); } fclose(fptr); return 0; }
File output fputc_test.txt berisi teks:
Contoh: fputs()
#include <stdio.h> int main() { FILE *fp = fopen("fputs_test.txt", "w+"); fputs("Ini adalah Tutorial Guru99 tentang fputs,", fp); fputs("Kami tidak perlu menggunakan loop\n", fp); fputs("Lebih mudah dari fungsi fputc\n", fp); fclose(fp); return 0; }
File yang dihasilkan fputs_test.txt:
Contoh: fprintf()
#include <stdio.h> int main() { FILE *fptr = fopen("fprintf_test.txt", "w"); fprintf(fptr, "Belajar C dengan Guru99\n"); fclose(fptr); return 0; }
File yang dihasilkan fprintf_test.txt:
Membaca dari File
Tiga fungsi utama membaca data:
fgetc(FILE*) – Mengembalikan karakter berikutnya.
fgets(char*, int, FILE*) – Membaca hingga n-1 karakter ke dalam buffer.
----baca baris---- Belajar C dengan Guru99 ----baca dan uraikan data---- Baca String1 |Belajar| Baca String2 |C| Baca String3 |dengan| Baca String4 |Guru99| ----baca seluruh file---- Belajar C dengan Guru99
I/O Karakter demi Karakter Interaktif dengan getc dan putc
Contoh minimal ini menunjukkan pembacaan input pengguna, menuliskannya ke file, dan kemudian membacanya kembali:
#include <stdio.h> int main() { FILE *fp; int c; printf("File Handling\n"); fp = fopen("demo.txt", "w"); while ((c = getchar()) != EOF) { putc(c, fp); } fclose(fp); printf("Data yang Dimasukkan:\n"); fp = fopen("demo.txt", "r"); while ((c = fgetc(fp)) != EOF) { putchar(c); } fclose(fp); return 0; }
Contoh eksekusi:
Kesimpulan
Sebuah file adalah ruang penyimpanan persisten di disk.
Perpustakaan standar C menyediakan fopen, fclose, fprintf, fscanf, dan fungsi terkait untuk manipulasi file yang andal.
Selalu buka file dengan mode yang benar untuk mengontrol perilaku membaca, menulis, atau menambahkan.
Secara eksplisit tutup file untuk membuang buffer dan melepaskan sumber daya sistem.
Gunakan fgetc dan putc untuk aliran karakter sederhana, dan fgets / fscanf untuk input berbasis baris atau terformat.
Saat menulis, ingat untuk mengakhiri string dengan \n jika Anda bermaksud baris baru.
Penanganan kesalahan yang tepat (memeriksa pointer NULL dan nilai kembali) esensial untuk aplikasi yang kuat.