Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /var/www/vhosts/bilgigunlugum.net/httpdocs/index.php on line 43
C Programlama

BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C örnek kodlar > c_multi_size_array_file_opr

C örnek kodlar

2 boyutlu integer bir dizi elemanları ile ilgili değer atama, dosyaya yazma, dosyadan okuma ve ekrana yazma işlemleri

Program sırasıyla aşağıdaki işlemleri gerçekleştirir:

  • 4 x 5 boyutlarında integer bir dizi oluşturur.
  • Oluşturduğu diziye 1-20 arasındaki sayıları atar ve atadığı değerleri ekrana yazar.
  • Yazma işlemleri için bir dosya açar.
  • Dizinin tüm içeriğini fwrite() fonksiyonunu bir kez kullanarak dosyaya yazar.
  • Dosyanın tüm içeriğini fread() fonksiyonunu bir kez kullanarak diziye aktarır.
  • Dizi elemanlarını tekrar ekrana yazar.

#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