Operasi Penyimpanan dan Pembacaan File Per Int pada Pemrograman C

Posted by belajar



Untuk keperluan menyimpan atau membaca membaca file bertipe int, C menyediakan fungsi _putwO dan _getwO. Betuk deklarasinya :
int _putty(int nilai, FILE *ptr_file); int _getty(FILE *ptr_file);
Dengan prototipe ada pada stdio.h. Kegunaan masing-masing adalah :
_getwO untuk membaca sebuah data bertipe int dari file
_putwO untuk menyimpan sebuah data (yang disimpan dalam variabel nilai) yang bertipe int ke file.
Contoh berikut merupakan program untuk menyimpan sejumlah data bertipe int ke dalam file bertipe biner bernama BILANGAN.DAT.Dalam hal ini, file BILANGAN.DAT akan diperlakukan sebagai file biner.


/* File program: _putty.c
contoh menyimpan data bertipe int menggunakan putty() */
#include <stdio.h> #include <stdlib.h>
main( )
{
FILE *pf;                                    /* ptr-ke-FILE */
int nilai, sudah benar;
_
char jatyab;
if((pf=fopen("BILANGAN.DAT", "tyb")) == NULL )
/* ciptakan file*/
{
printf ("file gagal diciptakan ! \ n" ) ;
exit (1) ;
}
printf("MENYIMPAN DATA INTEGER KE FILE\n");

do {
printf("\nBilangan yang akan disimpan: ");
scanf ("%d", &nilai) ;        /* baca nilai dr keyboard */
putw(nilai, pf);             /* baca bilangan ke file */
printf("memasukkan data lagi (Y/T)?      ");
do
{
jawab = getchar () ; /* baca jawaban dr keyboard */ sudah benar = ( (jawab == 'Y') II (jawab == 'y')
II (jawab == 'T') II (jawab == 't')); / while(! sudah benar);
2
/
while (jawab == 'y' I I jawab == 'Y' ) ;
printf("\nOke. Data sudah disimpan dalam file.\n");
fclose(pf);                                 /* menutup file */
/


Contoh eksekusi :
Program untuk menyimpan data integer ke file
Bilangan yang akan disimpan: 60 Memasukkan data lagi (Y/T)? y
Bilangan yang akan disimpan: 998 Memasukkan data lagi (Y/T)? y
Bilangan yang akan disimpan: -75 Memasukkan data lagi (Y/T)? t
Oke. Data sudah disimpan dalam file.
Program yang digunakan untuk menampilkan isi file BILANGAN.DAT pada dasarnya sama dengan program fgetc.c yang menampilkan isi file teks COBA.TXT di atas. Hanya saja, untuk mendeteksi akhir dari file, diperlukan makro bernamafeof(), yang memiliki bentuk deklarasi
int feof(FILE *ptrfile);
dengan prototipe dan definisinya ada pada filestdio.h
Keluaran feof() berupa nilai nol (NULL) jika operasi pembacaan yang terakhir membaca tanda akhir file. Sebagai contohnya, perhatikan implementasi pada program di bawah ini.
Contoh membaca isi file biner menggunakan getw() */
#include <stdio.h> #include <stdlib.h>
main()
{
FILE *pf;                              /* ptr ke file */
int nilai, nomor = 0;
/* Buka file biner untuk dibaca */ if((pf=fopen("BILANGAN.DAT","rb")) == NULL)
{
printf ("File gagal dibuka . \ n" ) ;
exit (1) ;
}
printf("Isi file BILANGAN.DAT : \n");
while(1)                                /* file berhasil dibuka */
{
nilai = _getw(pf);             /* Baca sebuah int dr file */
if (feof (pf) != 0) /*Jika akhir file, keluar loop*/
break;
/* Tampilkan ke layar */
printf("%2d. %d \n", ++nomor, nilai);
}
fclose (pf) ;                          /* Tutup file */
}


Contoh eksekusi :
Isi file BILANGAN.DAT :
1.    60
2.    998
3.    -75