Program sırasıyla aşağıdaki işlemleri gerçekleştirir:
#include <stdio.h>
int main(void)
{
FILE *fp;
int idizi[4][5];
int id1, id2, id3;
int rows = 4;
int cols = 5;
size_t size_idizi = sizeof(idizi) / sizeof(idizi[0][0]);
// Diziye değer atama
for (id1=0, id3=1; id1<rows; id1++) {
for (id2=0; id2<cols; id2++) {
idizi[id1][id2] = id3++;
}
}
// Dizi değerlerini ekrana yazma
for (id1=0; id1<rows; id1++) {
for (id2=0; id2<cols; id2++) {
printf("%d ", idizi[id1][id2]);
}
printf("\n");
}
// Yazma işlemleri için dosya açma
if ((fp = fopen ("dizi.bin", "wb")) == NULL) {
printf("Dosya açma hatası!");
}
// Tüm dizi değerlerini tek seferde dosyaya yazma
if (fwrite(idizi, sizeof(int), size_idizi, fp) != size_idizi) {
printf("Dosyaya yazma hatası!\n");
}
// Dosya kapatma
fclose(fp);
// Okuma işlemleri için dosya açma
if ((fp = fopen ("dizi.bin", "rb")) == NULL) {
printf("Dosya açma hatası!");
}
// Tüm dizi değerlerini tek seferde dosyadan okuma
if (fread(idizi, sizeof(int), size_idizi, fp) != size_idizi) {
printf("Dosya okuma hatası!\n");
}
// Dosya kapatma
fclose(fp);
printf("\nDosyadan okunan değerler\n");
// Dosyadan okunan değerleri ekrana yazma
for (id1=0; id1<rows; id1++) {
for (id2=0; id2<cols; id2++) {
printf("%d ", idizi[id1][id2]);
}
printf("\n");
}
return 0;
}
Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Dosyadan okunan değerler 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20