fwrite()
Menulis data ke file dalam C
Fungsi fwrite()
digunakan untuk menulis blok data dari memori ke file. Fungsi ini sangat berguna untuk menulis data biner, seperti array atau struktur, langsung ke file tanpa harus mengkonversi ke format teks.
Sintaks
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
ptr
➜ Pointer ke blok data di memori yang akan ditulis.size
➜ Ukuran setiap elemen yang akan ditulis (dalam byte).count
➜ Jumlah elemen yang akan ditulis.stream
➜ Pointer ke file yang sudah dibuka.Mengembalikan jumlah elemen yang berhasil ditulis ke file. Jika nilainya kurang dari
count
, bisa berarti terjadi error atau disk penuh.
Contoh Penggunaan
1. Menulis array integer ke file biner
Misalkan kita memiliki sebuah array integer dan ingin menuliskannya ke file biner bernama data.bin
.
#include <stdio.h>
#include <stdlib.h>
int main() {
// Buka file data.bin dalam mode tulis biner
FILE *file = fopen("data.bin", "wb");
if (file == NULL) {
printf("Gagal membuka file untuk menulis!\n");
return 1;
}
int data[] = {10, 20, 30, 40, 50};
size_t jumlahElemen = sizeof(data) / sizeof(data[0]);
// Menulis array ke file
size_t elemenTertulis = fwrite(data, sizeof(int), jumlahElemen, file);
if (elemenTertulis != jumlahElemen) {
printf("Gagal menulis data dengan benar ke file.\n");
} else {
printf("Berhasil menulis %zu elemen ke file.\n", elemenTertulis);
}
fclose(file);
return 0;
}
Hasilnya:
Berhasil menulis 5 elemen ke file.
2. Menulis data teks sebagai blok data
Walaupun biasanya data teks ditulis dengan fprintf()
, kita juga bisa menulis blok data teks menggunakan fwrite()
.
#include <stdio.h>
#include <string.h>
int main() {
// Buka file output.txt dalam mode tulis biner
FILE *file = fopen("output.txt", "wb");
if (file == NULL) {
printf("Gagal membuka file untuk menulis!\n");
return 1;
}
const char *teks = "Halo, ini ditulis dengan fwrite()!";
size_t panjangTeks = strlen(teks);
// Menulis data teks ke file
size_t byteTertulis = fwrite(teks, sizeof(char), panjangTeks, file);
if (byteTertulis != panjangTeks) {
printf("Gagal menulis seluruh data teks ke file.\n");
} else {
printf("Berhasil menulis %zu byte ke file.\n", byteTertulis);
}
fclose(file);
return 0;
}
Hasilnya:
Berhasil menulis 36 byte ke file.
Penjelasan Tambahan
Data Biner vs. Teks:
fwrite()
sangat berguna untuk data biner, karena menulis data persis seperti yang ada di memori.Untuk data teks,
fprintf()
sering lebih mudah karena bisa menggunakan format spesifik.
Nilai Kembalian:
Nilai yang dikembalikan adalah jumlah elemen yang berhasil ditulis.
Jika nilainya kurang dari jumlah elemen yang diharapkan, periksa error atau kondisi disk.
Mode File:
Gunakan mode
"wb"
untuk menulis file biner.Mode
"w"
untuk file teks pun bisa digunakan, tetapi perhatikan bahwa dalam beberapa sistem perbedaan mungkin terjadi dalam penulisan data.
Last updated