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