120 likes | 377 Views
Dosya İşlemleri. Dosyalar. Bilgilerin belirli bir düzen içerisinde yer aldığı yapılardır. Bilgiler satır satır kaydedilir ve okunur (Sıralı dosyalar) Kayıt uzunluğu sabit olan dosyalarda herhangi bir bilgiye erişmek mümkündür (Rastgele dosyalar). İşlemler: Dosya Açma Dosya Kapatma
E N D
Dosyalar • Bilgilerin belirli bir düzen içerisinde yer aldığı yapılardır. • Bilgiler satır satır kaydedilir ve okunur (Sıralı dosyalar) • Kayıt uzunluğu sabit olan dosyalarda herhangi bir bilgiye erişmek mümkündür (Rastgele dosyalar). • İşlemler: • Dosya Açma • Dosya Kapatma • Dosyaya Yazma • Dosyadan Okuma • Hata Kontrol Komutları
Dosya Açma • fopen() fonksiyonu kullanılır. • Stdio.h içinde tanımlıdır. • FILE* fopen(char* dosyaadi, char* mod); • FILE* dosya; dosya = fopen(“ornek.dat”, “r”);
Dosya Kapatma int fclose(FILE *dosyaadi); Dosya kapatma işlemi başarılı ise 0 değeri döner. int fcloseall(); Kapatılan dosya sayısı geri döner. int fflush(FILE* dosyaadi); Diske aktarma işlemi başarılı ise 0 değeri döner. int flushall(); Diske aktarılan dosya sayısı döner.
Dosyaya Bilgi Yazma • fputc () : Dosyaya bir karakter yazmak için kullanılır. int fputc( int karakter, FILE* dosyaadi); İşlem tamamlandı ise karakterin ASCII kodu, tamamlanamadıysa -1 değeri döner. Örnek: FILE* dosya; void main(){ dosya = fopen(“ornek.txt”, “wt”); printf(“%d \n”, fputc(321,dosya)); printf(“%d \n”, fputc(‘\n’,dosya)); printf(“%d \n”, fputc(‘K’,dosya)); fclose(dosya); }
Dosyaya Bilgi Yazma • fputs () : Dosyaya bir karakter dizisini yazmak için kullanılır. int fputs( char* s, FILE *dosyaadi); İşlem tamamlandı ise 0, tamamlanamadıysa 0’dan farklı bir değeri döner. Örnek: FILE* dosya; void main(){ int deger; dosya = fopen(“ornek2.txt”, “wt”); deger=fputs(“Bu bir karakter dizisidir \n Tek satır yazılmıştır ”,dosya); printf(“Dönüş değeri=%d \n”, deger); fclose(dosya); }
Dosyaya Bilgi Yazma • fprintf () : Dosyaya formatlı yazı yazmak için kullanılır. int fprintf(FILE *dosyaadi,char* format[, arguman listesi]); İşlem tamamlandı ise dosyaya yazılan karakter sayısı döner. Örnek: FILE* dosya; void main(){ int deger, d=25; dosya = fopen(“ornek3.txt”, “wt”); deger=fprintf(dosya, “D=%d\n”,d); printf(“Dönüş değeri=%d \n”, deger); fclose(dosya); }
Dosyadan Bilgi Okuma • getc () : Dosyadan bir karakter okumak için kullanılır. int getc(FILE *dosyaadi); Örnek: FILE* dosya; void main(){ char ch; dosya = fopen(“ornek2.txt”, “r”); ch=getc(dosya); printf(“Dosyadan okunan karakter=%c \n”, ch); fclose(dosya); }
Dosyadan Bilgi Okuma • fgets () : Dosyadan bir karakter dizisi okumak için kullanılır. int fgets(char* str, int uzunluk, FILE *dosyaadi); Okuma işleminde hata var ise dönen değer NULL olur. Örnek: FILE* dosya; void main(){ char str[15]; dosya = fopen(“ornek2.txt”, “r”); fgets(str, 15, dosya); printf(“Dosyadan okunan satır=%s \n”, str); fclose(dosya); }
Fwrite fonksiyonu • fwrite () : Belleğin bir bölümünü bir defada dosyaya yazmak için kullanılır. int fwrite(void *BELLEK, int uzunluk, int N, FILE *dosyaadi); Örnek: FILE* dosya; void main(){ int dizi[10]; dosya = fopen(“ornek4.txt”, “w”); for (int i=1;i<=10;i++) dizi[i-1] = i; fwrite(&dizi, sizeof(int),10, dosya); fclose(dosya); }
Fread fonksiyonu • fread () : Dosyadan bilgiyi bir defada okumak ve belleğe aktarmak için kullanılır. int fread(void *bellek, int uzunluk, int N, FILE *dosyaadi); Örnek: FILE* dosya; void main(){ int dizi[10]; dosya = fopen(“ornek4.txt”, “r”); fread(&dizi, sizeof(int),10, dosya); for (int i=0;i<=9;i++) printf(“%d\n”,dizi[i]); fclose(dosya); }