Penanganan Fail dalam C: Panduan Pemula

Hai sana, bakal pengaturcara! Hari ini, kita bakal melaksanakan perjalanan yang menarik ke dunia Penanganan Fail dalam C. Jangan bimbang jika anda belum pernah menulis baris kod sebelum ini - saya akan menjadi panduan yang ramah, dan kita akan mengambil langkah demi langkah. Pada akhir panduan ini, anda akan dapat mengendalikan failseperti seorang pro!

C - File I/O (File Handling)

Apa Itu Penanganan Fail dan Mengapa Kita Perlukannya?

Imagin anda menulis diari. Setiap hari, anda membuka diari, menulis tentang hari anda, dan kemudiannya menutupnya. Hari berikutnya, anda boleh membukanya sekali lagi dan membaca apa yang anda tulis kemarin. Penanganan fail dalam C bekerja secara serupa!

Penanganan fail membolehkan program kita berinteraksi dengan fail di komputer kita. Kita boleh membuat fail baru, menulis data kepadanya, membaca data daripadanya, dan bahkan mengubah fail yang sudah wujud. Ini penting kerana membolehkan program kita menyimpan dan mendapatkan maklumat walaupun selepas program tamat dijalankan.

Contoh dunia sebenar

Imagin anda sedang membuat program buku alamat mudah. Tanpa penanganan fail, semua kenalan yang anda tambahkan akan hilang sebaik sahaja anda menutup program. Dengan penanganan fail, anda boleh menyimpan kenalan tersebut ke fail dan muatkan mereka kembali apabila anda memulakan program lagi. Menarik, kan?

Jenis Fail

Dalam C, kita secara utama menguruskan dua jenis fail:

  1. Fail Teks: Ini mengandungi teks yang boleh dibaca oleh manusia. Ber fikir tentang fail .txt yang anda mungkin buat di Notepad.
  2. Fail Binari: Ini mengandungi data dalam format yang sama seperti yang disimpan di ingatan. Mereka tidak dimaksudkan untuk dibaca secara langsung oleh manusia.

Untuk panduan ini, kita akan fokus kebanyakannya pada fail teks, kerana mereka mudah dipahami bagi pengguna baru.

Penunjuk FILE: Kunci Operasi Fail

Sebelum kita boleh melakukan apa-apa dengan fail, kita perlu mengenalkan konsep yang sangat penting: penunjuk FILE. Ber fikir tentang ini sebagai variabel khas yang bertindak sebagai pengendali fail yang kita hendak kerjakan.

Ini adalah bagaimana kita menyatakan penunjuk FILE:

FILE *filePointer;

Jangan bimbang tentang tanda bintang (*) untuk sekarang. Hanya ingat bahawa ketika kita bekerja dengan fail, kita sentiasa perlu menyatakan penunjuk FILE seperti ini.

Membuka (Membuat) Fail

Sekarang kita ada penunjuk FILE, mari kita belajar bagaimana untuk membuka fail. Kita menggunakan fungsi fopen() untuk ini. Ini adalah sintaksis asas:

filePointer = fopen("filename.txt", "mode");

"Mode" memberitahu C apa yang kita hendak lakukan dengan fail. Ini adalah beberapa mode biasa:

Mode Keterangan
"r" Baca: Buka fail untuk membaca (fail mesti wujud)
"w" Menulis: Buat fail baru untuk menulis (jika fail wujud, kandungannya dipadam)
"a" Menambah: Menambah ke fail (jika fail tidak wujud, ia dicipta)
"r+" Baca dan Menulis: Buka fail untuk membaca dan menulis

Mari lihat contoh:

FILE *filePointer;
filePointer = fopen("my_diary.txt", "w");

if (filePointer == NULL) {
printf("Oops! Saya tidak dapat membuat fail.");
return 1;
}

Dalam kod ini, kita cuba membuka (atau membuat) fail bertajuk "my_diary.txt" untuk menulis. Pernyataan if memeriksa jika fail berjaya dibuka. Jika filePointer adalah NULL, itu bermaksud sesuatu halangan (mungkin kita tidak mempunyai kebenaran untuk membuat fail di lokasi itu).

Menutup Fail

Bila kita selesai dengan fail, sangat penting untuk menutupnya. Ini memastikan semua perubahan kita disimpan dan fail dipulangkan kepada sistem operasi dengan betul. Ini adalah bagaimana kita lakukan ini:

fclose(filePointer);

Sentiasa ingat untuk menutup fail anda! Itu seperti memadam lampu ketika anda meninggalkan bilik - ia adalah tabiat yang baik untuk dikembangkan.

Menulis ke Fail Teks

Sekarang kita tahu bagaimana membuka dan menutup fail, mari kita tulis beberapa data ke fail. Kita akan menggunakan fungsi fprintf(), yang bekerja secara serupa dengan printf() yang anda mungkin telah lihat sebelum ini, tetapi ia menulis ke fail bukannya konsol.

FILE *filePointer;
filePointer = fopen("my_diary.txt", "w");

if (filePointer == NULL) {
printf("Oops! Saya tidak dapat membuat fail.");
return 1;
}

fprintf(filePointer, "Dear Diary,\nToday I learned about file handling in C!\n");

fclose(filePointer);

Dalam contoh ini, kita menulis dua baris ke fail. \n membuat baris baru, sama seperti saat kita menggunakan printf().

Membaca daripada Fail Teks

Membaca daripada fail adalah mudah seperti menulis kepadanya. Kita akan menggunakan fungsi fgets() untuk membaca baris daripada fail.

FILE *filePointer;
char buffer[100];

filePointer = fopen("my_diary.txt", "r");

if (filePointer == NULL) {
printf("Oops! Saya tidak dapat membuka fail.");
return 1;
}

while (fgets(buffer, sizeof(buffer), filePointer) != NULL) {
printf("%s", buffer);
}

fclose(filePointer);

Dalam kod ini, kita membaca fail baris demi baris ke dalam array buffer, dan kemudiannya mencetak setiap baris ke konsol. Loop while terus berjalan sampai fgets() mengembalikan NULL, yang menunjukkan kita telah mencapai akhir fail.

Penanganan Fail Binari

Walaupun kita telah fokus pada fail teks sejauh ini, ia adalah penting untuk menyebutkan bahawa C juga membolehkan kita bekerja dengan fail binari. Ini adalah khas berguna saat kita menguruskan struktur data kompleks atau saat kita perlu menyimpan data dengan betul seperti yang diwakili dalam ingatan.

Ini adalah beberapa fungsi digunakan untuk operasi fail binari:

Fungsi Keterangan
fread() Baca data binari daripada fail
fwrite() Tulis data binari ke fail
fseek() Pindah ke posisi khusus dalam fail
ftell() Beritahu posisi sekarang dalam fail
rewind() Pindah kembali ke permulaan fail

Kita tidak akan masuk kebanyakannya tentang ini dalam panduan pemula ini, tetapi ia adalah baik untuk mengetahui mereka wujud untuk saat anda bersedia untuk menghadapi operasi fail yang lebih advance!

Mengubah Nama Fail

Akhirnya, mari kita belajar bagaimana untuk mengubah nama fail. C menyediakan fungsi mudah yang dipanggil rename() untuk tujuan ini.

int result = rename("old_name.txt", "new_name.txt");

if (result == 0) {
printf("Fail dinamakan dengan jaya!");
} else {
printf("Oops! Sesuatu halangan berlaku.");
}

Fungsi ini mengembalikan 0 jika pengubahan nama berjaya, dan nilai bukan nol jika ada kesilapan.

Kesimpulan

Tahniah! Anda telah mengambil langkah pertama ke dunia penanganan fail dalam C. Kita telah meliputi membuka dan menutup fail, membaca dan menulis ke fail teks, dan bahkan menyentuh fail binari dan pengubahan nama fail.

Ingat, latihan membawa ke kemahiran. Cobalah membuat program mudah yang menggunakan konsep ini - mungkin catatan digital atau buku alamat asas. Semakin banyak anda bermain dengan fungsi ini, semakin merasakan anda akan merasa nyaman dengan penanganan fail.

Terus kod, terus belajar, dan terutamanya, bersenang-senang! Siapa tahu? Aplikasi yang besar berikutnya mungkin hanya bersembunyi di dalam fail yang anda buat!

Credits: Image by storyset