Pada pertemuan ke 8 kami belajar tentang file processing
Ketika program C dijalankan ada 3 standard streams yang diaktifkan:
1. Standard Input Stream : Mengontrol stream input dari keyboard
2. Standard output Stream : Mengontrol stream output ke monitor
3. Standard error Stream : Mengontrol pesan error
– Definisi File
– File adalah kumpulan record (baris)
– Record adalah kumpu lan field (column)
– Field adalah blok byte
– Byte adalah kumpulan bit
FILE BINARY
menyimpan data numerik dalam format in line dengan format yang mikro-prosesor (contoh: Format sign-magnitude 2 ‘s complement).
Data yang hanya dapat dibuka oleh system (kata-kata atau hurufnya di .txt acak [cryptography])
Penulisan : FILE *fp;
Buffer Area
Buffer area adalah bagian dari memori yang digunakan sebagai ruang sementara sebelum data pindah ke sebuah file.
Contoh syntax :
FILE * fp;
(hati hati karena FILE menggunakan huruf besar)
(fp adalah pointer file awal dari buffer area)
Open File
Membuka File menggunakan fopen ():
FILE *fopen (const char *filename, const char *mode);
Contoh mode :
“r” membuka file untuk dibaca.
“w” membuat file untuk ditulis.
“A” membuka file untuk data append.
“r+” membuka file untuk membaca / menulis.
“w+” membuat file untuk membaca / menulis.
“a+” membuka file untuk membaca / tambahkan
“rb” membuka File (binary) untuk dibaca.
“wb” membuat file (binary) untuk menulis.
(Dalam penge-save-an Game sebaiknya menggunakan binary yaitu “rb” atau “wb” karena tidak dapat dibuka dengan notepad biasa)
Close File
int fclose (FILE *stream);
*harus ditutup agar bisa digunakan untuk aplikasi lainnya atau .txtnya akan digunakan terus menerus
fclose () didefinisikan di <stdio.h>
fclose () akan mengembalikan 0 jika berhasil, dan EOF jika error
EOF (End Of File) sama dengan -1 (EOF itu dibuat otomatis)
fclose () akan masuk ke buffer area dulu dan segera mengirimkan sisa data ke dalam file.
Input dan Output File
- fgetc (INPUT)
Syntax : int fgetc (FILE *stream);
Membaca satu karakter(char) dari file.txt
fgetc (stdin) ekuivalen dengan getchar () - fputc (OUTPUT)
Syntax : int fputc (int c, FILE * stream);
Menulis/menaruh satu karakter(char) ke file.txt
fputc (‘a’, stdout) sama dengan putchar (‘a’) - fgets (INPUT)
Syntax : char *fgets( char *string, int n, FILE *stream );
Membaca satu baris dari sebuah file yang berakhir dengan baris baru, atau maksimum n-1 jumlah karakter.
Kembali string jika successful dan NULL jika error - fputs (OUTPUT)
Syntax : int fputs( const char *string, FILE *stream );
Menulis baris ke file
Mengembalikan nilai non-negatif jika berhasi dan EOF jika error. - fscanf (INPUT)
Syntax : int fscanf( FILE *stream, const char *format [, argument ]… );
Membaca data dari file.txt dengan format scanf.
mengembalikan jumlah field dan read jika successful, dan EOF jika error - fprintf (OUTPUT)
Syntax : int fprintf( FILE *stream, const char *format [, argument ]…);
Menulis data ke file.txt menggunakan format printf.
Pengembalian byte written jika nilai successful dan negatif jika error. - fwrite
Syntax : size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );
Menulis ke file sebanyak n size
Writing a block of data in the buffer area to the file
Return number of byte data written, and error otherwise. - fread
Syntax : size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
Baca ukuran blok data dari file
membaca dari file sebanyak n size - feof
Syntax : int feof( FILE *stream );
membaca terus menerus sampai file habis
Mencari tahu apakah pointer telah mencapai end-of-file
Kembali 0 jika tidak berakhir end-of-file