Programlama Rehberi

Struct ve Dosyalama işlemleri


//struct dizisi

struct uye
{
char isimler[100];
float hesap;
int havale;

}kullanicilar[20];

Burda 20 elemanlı bir struct dizisi yarattık.İhtiyaca göre sayıyı arttırabilirsiniz.
Bu şekilde mesela Banka ATM simülasyonunda 20 kişi için ayrı ayrı isim, hesap ve havale bilgilerine ulaşabilmekteyiz.Bu şekilde kişi bilgilerine daha kolay ulaşılabilmektedir.

Örneğin ilk kullanıcı için bilgi atamak istersek:

kullanicilar[0].isimler = "aydin";
kullanicilar[0].hesap=12,200;
kullanicilar[0].havale=100;

Şimdi dosyalama işlemlerine bakalım

İlk önce programınızın bulunduğu dosyaya ayarlar isminde bir not defteri yaratın.

//main() blogunun içine yazılacak
//dosyadan okuma

FILE *oku;

oku=fopen("ayarlar.txt","r");
for (int b=0;b<eleman_sayisi;b++)
{
fscanf(oku,"%s %f %d",&kullanicilar[b].isimler, &kullanicilar[b].hesap,&kullanicilar[b].havale);
}
fclose(oku);

Burda daha önceden yaratmış olduğumuz ayarlar.txt dosyasından bilgi okumuş olduk.fopen la dosyayı açmış , "r" ile okuma işlemi yapmak istediğimizi belirttik.
fscanf de ise dosyadan satır satır okuma işlemi yapmaktadır.
Boşluklara göre her satırdaki elemanları struct dizisinde ilgili elemana atmış olduk.Eleman_sayisini dosyadaki eleman sayınıza göre değiştirebilirsiniz.

Örneğin ayarlar.txt nin iceriği şöyle olsn

mehmet 3,500 200
ali 2,200 100

burada
kullanicilar[0].isim mehmet
kullanicilar[0].hesap 3,500
kullanicilar[0].havale 200 oldu

aynı sekilde
kullanıcılar[1].isim ali
kullanicilar[1].hesap 2,200
kullanicilar[1].havale 100 oldu

Bu işlem sonunda fclose(oku) ile ayarlar.txt yi kapatmıs olduk.

//main() blogunun içine yazılacak
//dosyaya yazdırma

FILE *yaz;
yaz=fopen("ayarlar.txt","w");
for (int j=0;j<eleman_sayisi;j++)
{

fprintf(yaz,"%s %f %d\n",kullanicilar[b].isimler,
kullanicilar[b].hesap,kullanicilar[b].havale);
}
fclose(yaz);

Burdada yine ayarlar.txt dosyasına bilgilerimizi yazdırmıs olduk.Mesela burada bilgiler programdada girilebilir ve sonunda dosyaya yazdırılmak istendiğinde dosyaya "w" komutu ile yazdırabilmekteyiz.
İşlem bittiğindede gene fclose(yaz) ile dosyamızı kapatmış olduk.

Temel olarak dosyalama işlemleri böyleydi.Umarım yararlı olmustur



Yazar: DaViD
Kategori: C
Düzey: Düzey
Eklenme Tarihi: 2008-11-17
Okunma: 183
Puan: 0
Yorum sayisi: 0

Yorumlarınız(0)




2004-2009 © Programlama Rehberi, tüm hakları saklıdır.