C programında veri kaydı nasıl yapılır?

Yusuf Kudret

Hectopat
Katılım
2 Mayıs 2020
Mesajlar
99
Hocamız bizden fotoğraftaki gibi bir kod yazmamızı istedi fakat biz maalesef kayıt eklemeden ileri gidemedik. Yardımcı olur musunuz?

image.jpg


image.jpg
 
Son düzenleyen: Moderatör:
Verileri bir struct üzerinde tut okuma yazma işini bu struct üzerinden daha rahat yaparsın, kodları foruma ekle resim olarak koyma biraz uğraş, yapamazsan yardımcı olurum basit bir şey zaten.
Hocam struct ı daha görmedik o yüzden kullanamıyoruz.
[CODE lang="c" title="son kisimda evet hayiri nasil sectirebilirim"]#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main()
{
int Secilen,s;
FILE *dosya;
char ad[25], soyad[30], adres[50], no[15];
printf("ANA MENU\n========\n");
printf("1- Kayit Ekleme\n2- Kayit Arama\n3- Kayit Duzeltme\n4- Kayit Silme\n5- Kayit Listeleme\n6- Cikis\n\n\n");
printf("Seciminiz: ");
scanf("%d",&Secilen);

switch(Secilen)
{
case 1:
dosya= fopen("Kayitlar.txt","a+");
printf("Ad: "); scanf("%s",&ad);
printf("Soyad: "); scanf("%s",&soyad);
printf("Adres: "); scanf("%s",&adres);
printf("Tel No: "); scanf("%s",&no);
fprintf(dosya,"%s\t %s\t %s\t %s\n", ad,soyad,adres,no);
clrscr;
printf("\nIslem Basarili\nBaska Kayit:[E/H]? \t");
fclose(dosya);
}
getch();
}[/CODE]
 
Son düzenleme:
Ezbere iş yapmak istemiyorsan sana tavsiyem kullandığın kitaplıkların hangi fonksiyonları barındırdığını ve nasıl kullanıldıklarını araştırman. Mesela stdio.h için fprintf ile dosyaya formatlı bilgi yazıyorsun aynı şekilde fscanf ile de dosyadan formatlı bilgiyi okuyabilirsin.

ihtiyacın olacak bazı fonksiyonlar;
fprintf
fscanf
feof
ftell
fseek
rewind
strcmp
memset

Bu fonksiyonların detaylarına aşağıdaki linklerden erişebilirsin;

örneğin dosya sonuna kadar kaydedilen bilgileri okuyup ekrana bastırmak istesek böyle kullanırız.

C++:
while(!feof(dosya)){
        
        memset(ad, 0, sizeof(ad));
        memset(soyad, 0, sizeof(soyad));

        fscanf(dosya,"%s %s\n", &ad, &soyad);

        printf("ad: %s\n", ad);
        printf("soyad: %s\n", soyad);
    }

memset kullanmak önemli, her zaman bir char array'e veri yazmadan önce onu temizlemelisin, memset ile diziyi null karakterle doldurabilirsin aksi halde değişkenler derleme esnasında rastgele değerler alır.
 
Ezbere iş yapmak istemiyorsan sana tavsiyem kullandığın kitaplıkların hangi fonksiyonları barındırdığını ve nasıl kullanıldıklarını araştırman. Mesela stdio.h için fprintf ile dosyaya formatlı bilgi yazıyorsun aynı şekilde fscanf ile de dosyadan formatlı bilgiyi okuyabilirsin.

ihtiyacın olacak bazı fonksiyonlar;
fprintf
fscanf
feof
ftell
fseek
rewind
strcmp
memset

Bu fonksiyonların detaylarına aşağıdaki linklerden erişebilirsin;

örneğin dosya sonuna kadar kaydedilen bilgileri okuyup ekrana bastırmak istesek böyle kullanırız.

C++:
while(!feof(dosya)){
       
        memset(ad, 0, sizeof(ad));
        memset(soyad, 0, sizeof(soyad));

        fscanf(dosya,"%s %s\n", &ad, &soyad);

        printf("ad: %s\n", ad);
        printf("soyad: %s\n", soyad);
    }

memset kullanmak önemli, her zaman bir char array'e veri yazmadan önce onu temizlemelisin, memset ile diziyi null karakterle doldurabilirsin aksi halde değişkenler derleme esnasında rastgele değerler alır.
Peki bunlar C için geçerli mi?
Farkediyor diye biliyorum
 

Yeni konular

Geri
Yukarı