Rabu, 06 Januari 2016

File Processing & Stream

Stream adalah urutan karakter. Semua input dan output data stream.
– 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

jadi 1 byte adalah 8 bit

– File dan Streams:
Membuka file ordering pointer kembali ke initiator. Pointer menunjuk ke struktur data dengan tipe FILE didefinisikan dalam stdio.h
contoh stream :
Standard Input Stream(misalnnya scanf), dengan file pointer stdin
Standard output Stream (pas mau di cetak misalnya printf), dengan file pointer stdout
Standard error Stream (jika kita pelajari C#, nanti ada perror), dengan file pointer stderr
– File Definition
Text file tersimpan dalam teks atau ASCII (American Standard Code for Information Interchange) yang merupakan suatu standard internasional.
Ukuran penyimpanan tergantung pada data: 10000 membutuhkan 5 byte
Dapat terbuka dengan menggunakan standar aplikasi editor teks
atau c:> TYPE nama_file
– FILE BINARY menyimpan data numerik dalam format in line dengan format yang mikro-prosesor (contoh: Format sign-magnitude 2 ‘s complement).
– 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.
– Close File
int fclose (FILE *stream);
– fclose () didefinisikan di
– 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 data yang tersisa untuk file.

– Input dan output file

– fgetc (INPUT)
Membaca satu karakter dari dua file
fgetc (stdin) ekuivalen dengan getchar ()
Syntax: int fgetc (FILE *stream);
– fputc (OUTPUT)
Menulis satu karakter ke file
fputc (‘a’, stdout) sama dengan putchar (‘a’)
Syntax: int fputc (int c, FILE * stream);
– 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)
Menulis baris ke file
syntax: int fputs( const char *string, FILE *stream );
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 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 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 );
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
- feof
Syntax: int feof( FILE *stream );
Mencari tahu apakah pointer telah mencapai end-of-file
Kembali 0 jika tidak berakhir end-of-file