INPUT/OUTPUT FILE
Membaca File
• Memproses file
– Nama file pada program (logical name)
harus diasosiasikan dengan nama file pada
komputer (physical name).
– Sebelum dapat dibaca, file harus dibuka
dengan fungsi fopen().
– Setelah selesai digunakan, file harus
ditutup dengan fungsi fclose().
Membuka File
• Fungsi fopen()
FILE *fopen( const char *filename,
const char *mode );
– Mengembalikan pointer ke awal buffer
area.
– Mengambalikan nilai NULL jika file tidak
dapat dibuka.
Mode Open File
Mode Kegunaan
“r” Buka file yang telah ada untuk dibaca
“w” Buka file baru untuk ditulis. Jika file sudah ada,
hapus isinya.
“a” Buka file untuk ditambah data di akhir file
“r+” Buka file yang telah ada untuk dibaca dan ditulis
“w+” Buka file baru untuk untuk dibaca dan ditulis
“a+” Buka file untuk dibaca dan diedit; semua
penambahan data akan dilakukan di akhir file
fclose(f);
return 0;
}
Fungsi fgetc() dan fputc()
Contoh 2: Membaca isi file menggunakan fgetc()
#include <stdio.h>
int main(){
char ch; FILE *f;
f = fopen("data.txt", "r");
if(f == NULL)
printf("File tidak bisa dibuka\n");
else
while(!feof(f)) {
ch = fgetc(f); printf("%c",ch);
}
printf("\n");
fclose(f); Dasar Pemrograman
return 0;
}
Fungsi fgets() dan fputs()
• Fungsi fgets()
int *fgets(char *string, int n, FILE *stream);
– Membaca satu baris dari file hingga
newline, atau maximum n-1 karakter.
• Fungsi fputs()
int fputs(const char *string, FILE *stream);
– Menulis satu baris ke file.
Fungsi fgets() dan fputs()
Contoh 3: Menuliskan ke file menggunakan fputs()
#include <stdio.h>
int main(){
FILE *f;
char s[100] = "UPN Veteran Jakarta";
f = fopen("univ.txt", "w");
if (f == NULL)
printf("File tidak bisa dibuat\n");
else {
fputs(s, f);
}
fclose(f);
return 0;
}
Fungsi fgets() dan fputs()
Contoh 4: Membaca isi file menggunakan fgets()
#include <stdio.h>
UPN Veteran Jakarta
int main() {
char s[100]; FILE *f;
f = fopen("univ.txt" , "r");
if (f == NULL)
printf("File tidak bisa dibaca\n");
else
while (!feof(f)) {
fgets(s, sizeof(s), f);
printf("%s", s);
}
fclose(f);
return 0;
}
Fungsi fscanf() dan fprintf()
• Fungsi fscanf()
int fscanf( FILE *stream,
const char *format [, argument ]... );
– Membaca data dari file dengan format sesuai
scanf().
• Fungsi fprintf()
int fprintf( FILE *stream,
const char *format [, argument ]...);
– Menulis data ke file dengan format sesuai
printf().
Fungsi fscanf() dan fprintf()
Contoh 5: Menuliskan ke file menggunakan fprintf()
#include <stdio.h>
int main() {
FILE *f;
char nim[] = "13618020";
int uts=80, uas=90;
f = fopen("nilai.txt", "w");
if (f == NULL)
printf("File tidak bisa dibuka\n");
else
fprintf(f, "%s %d %d\n", nim, uts, uas);
fclose(f);
return 0;
}
Fungsi fscanf() dan fprintf()
Contoh 6: Membaca isi file menggunakan fscanf()
#include <stdio.h>
int main() { 13618020 80 90
FILE *f; char nim[10];
int uts, uas;
f = fopen("nilai.txt" , "r");
if (f == NULL)
printf("File tidak bisa dibaca\n");
else {
while (!feof(f))
fscanf(f, "%s %d %d", nim, &uts, &uas);
printf("%s %d %d\n", nim, uts, uas);}
fclose(f);
return 0;
}
Fungsi fwrite() dan fread()
• Fungsi fwrite()
size_t fwrite( const void *buffer, size_t size, size_t
count, FILE *stream );
– Menulis satu block data yang ada di buffer ke
file.
• Fungsi fread()
size_t fread( void *buffer, size_t size, size_t count,
FILE *stream );
– Membaca satu block data sebesar size dari
file.
Fungsi fwrite() dan fread()
• Fungsi fwrite() dan fread()
– Dapat membaca array data dari file, dan
menulis array data ke file.
– Argumen ke-3 (count) menunjukkan jumlah
elemen array yang ingin dibaca / ditulis ke file.
Fungsi fwrite() dan fread()
Contoh 7: Menuliskan ke file menggunakan fwrite()
#include <stdio.h>
int main(){
FILE *f;
int A[] = {1,2,3,4,5};
f = fopen("binary_file.txt", "w");
if(f == NULL)
printf("File tidak bisa dibuat\n");
else
fwrite(A, sizeof(A), 1, f);
fclose(f);
return 0;
Bukan plain text, tidak bisa
}
dibaca dengan mudah
Fungsi fwrite() dan fread()
Contoh 8: Membaca isi file menggunakan fread()
#include <stdio.h>
1 2 3 4 5
int main(){
FILE *f; int A[5], i;
f = fopen("binary_file.txt", "r");
if(f == NULL)
printf("File tidak bisa dibuka\n");
else{
fread(A, sizeof(A), 1, f);
for(i=0; i<5; i++) printf("%d ", A[i]);
}
fclose(f);
return 0;
}
Menyimpan Data ke File
Contoh 9: Menyimpan data dari keyboard ke file
#include <stdio.h> 3
int main(){ 1 5
FILE *f; 2 6
int n, a, b, i; 3 7
scanf("%d", &n); // jumlah data
f = fopen("input.txt" ,"w");
for(i=0; i<n; i++){
scanf("%d %d", &a, &b);
fprintf(f, "%d %d", a, b);
if(i+1<n) fprintf(f, "\n");
}
return 0;
}
Latihan 1