Bab 13 Manipulasi Fail
Fail Input dan Output Input dan output piawai bagi aturcara C ialah papankunci dan paparan (monitor) Input juga boleh diterima dari fail, dan output boleh ditulis ke dalam fail fail data Terdapat dua jenis fail data : fail teks dan fail binari Setiap fail teks diakhiri dengan aksara akhir-fail (end-of-file) <eof> Setiap baris diakhiri dengan aksara baris-baru <newline> Contoh: Fail ini adalah fail teks.<newline> Ia terdiri dari dua baris. <newline> <eof>
Membuka dan Menutup Fail Penuding fail digunakan untuk membuka, menutup, dan merujuk kepada tempat tertentu dalam fail input dan output Sintaks pengisytiharan penuding: FILE *nama_penuding; Fail input dan output perlu dibuka sebelum boleh digunakan ( baca/tulis ) Sintaks membuka fail: nama_penuding = fopen(nama_fail, mod_capaian); Fail juga perlu ditutup selepas digunakan Sintaks menutup fail: fclose(nama_penuding);
Membuka dan Menutup Fail Contoh: FILE *fmasuk, *fkeluar; : fmasuk = fopen(“Pelajar.dat”, “r”); fkeluar = fopen(“Keputusan”, “w”); fclose(fmasuk); fclose(fkeluar); Nama_fail boleh terdiri dari rentetan nama fail itu sendiri atau pembolehubah rentetan Contoh menggunakan pembolehubah rentetan: FILE *fin; char fail_input[ ] = “Pelajar”; fin = fopen(fail_input, “r”);
Membuka dan Menutup Fail Mod_capaian menyatakan operasi yang boleh dilakukan terhadap fail yang dibuka Mod Maksud “r” hanya untuk dibaca (read) “w” hanya untuk ditulis – bermula dari awal fail (write) “a” hanya untuk ditulis – bermula dari akhir fail (append) “r+” untuk kemaskini – baca dan tulis “w+” untuk kemaskini – cipta, baca, dan tulis “a+” untuk kemaskini – baca keseluruhan fail, atau tulis dihujung fail
Membuka dan Menutup Fail Sekiranya proses membuka fail berjaya, penuding akan merujuk kepada baris pertama dan aksara pertama dalam fail yang dibuka Jika tidak, penuding tidak menunjuk ke mana-mana, juga disebut sebagai bernilai NULL Untuk mengelak ralat yang serious, aturcara perlu ditamatkan sekiranya terdapat fail yang gagal dibuka Maka, segmen berikut penting: fin = fopen(“data”, “r”); if ( fin == NULL ) { printf(“Terdapat ralat semasa membuka fail data\n”); exit(1); }
Menulis ke Fail Teks – fprintf() Sintaks: fprintf( nama_penuding, format_output [ , senarai_nilai] ); Contoh: fprintf( fout, “d%”, nom); putc() digunakan untuk menulis satu aksara ke dalam fail Sintaks putc(): putc(aksara, nama_penuding); putc(‘q’, fout); atau putc(aks, fout); yang mana aks adalah pencam pembolehubah yang menyimpan suatu nilai aksara fputs() digunakan untuk menulis satu rentetan ke dalam fail Sintaks fputs(): fputs(rentetan, nama_penuding); fputs(“baris pertama”, fout); atau fputs(baris, fout); yang mana baris adalah pencam suatu rentetan atau nama suatu tatasusunan aksara
Membaca daripada Fail Teks – fscan() Sintaks : fscanf(nama_penuding, format_output [ , senarai nilai ] ); Contoh: fscanf(fin, “%d %c”, &matrik, &gred); Membaca satu aksara dari fail getc() Sintaks getc(): pembolehubah_aksara = getc(nama_penuding); while ( (aks = getc(fin) ) != EOF ) { : } Membaca satu rentetan dari fail fgets() Sintaks fgets(): fgets(pubah_rentetan, pjg_maks_rentetan, nama_penuding); while ( (fgets(nama, 30, fin) ) != NULL ) {