You are on page 1of 9

Dosyalar

İki tip dosya vardır. Birincisi metin(text) dosyalar ve ikincisi ikili(binary)


dosyadır. Burada metin dosyaları ele alınmıştır.

Genel olarak metin tipi dosyalarda kullanılan fonksiyonlar şunlardır;

1) Dosya pointeri

2) fopen( ) fonksiyonu

3) fclose fonksiyonu

4) fprintf( ) fonksiyonu

5) fscanf( ) fonksiyonu

C Programlama Dili Ders Notları Dr. Oğuz ÜSTÜN


Dosya Pointeri

FILE *dosya_pointeri;

şeklinde tanımlanır.

Burada FILE stdio.h header dosyasında tanımlanmış olan bir yapı (structure)

dır. Burada verilen dosya_pointeri bu yapıya ait bir pointer değişkenidir ve

program içerisindeki açılan dosyanın ismini gösterir. Bu pointer fopen, fclose,

fprintf, fscanf gibi fonksiyonların tanımlanmasında kullanılan dosya adıdır.

Fakat diske kaydedilen dosya adı ile alakası yoktur.

C Programlama Dili Ders Notları Dr. Oğuz ÜSTÜN


fopen( ) fonksiyonu

dosya_pointeri=fopen(“dosya_yolu adı ve uzantısı”, “dosya_tipi”);

dosya_pointeri: yukarıda FILE ile verilmiştir.


dosya_yolu: Hardisk içerisinde dosyanın nereye kaydedileceğini gösterildiği
kısımdır.
Dosya adı ve uzantısı: Açılan dosyanın ismi ve isteniyorsa uzantı da
verilebilir.
Dosya_tipi: Açılan dosyanın, hangi tipte olduğu belirten özel karakterlerdir ve
kullanılacak dosya tipleri verilmiştir;

r sadece okuma amaçlı bir metin dosyası oluşturur.


w sadece yazma amaçlı bir metin dosyası oluşturur;
a mevcut bir dosyaya ekleme yapmak için kullanılır; dosya yoksa
yazmak için yaratır

C Programlama Dili Ders Notları Dr. Oğuz ÜSTÜN


Örnek 1: fopen( )

FILE *dp, *fp, *dosya;

dp=fopen(“d:\\enf_106\\ornek.dat”, “w”);
dp=fopen(“d:\\enf_106\\ornek.txt”, “w”);
dp=fopen(“d:\\enf_106\\ornek.xls”, “w”);
dp=fopen(“d:\\enf_106\\ornek.doc”, “w”);

fp=fopen(“d:\\enf_106\\ornek.dat”, “r”);

dosya=fopen(“d:\\enf_106\\ornek.dat”, “a”);

C Programlama Dili Ders Notları Dr. Oğuz ÜSTÜN


fclose ( ) Fonksiyonu

fclose(dosya_pointeri);
şeklinde tanımlanır.
fclose() fonksiyonu, fopen( ) kullanılarak açılmış olan bir dosyayı kapatır.
Program sonlandırılmadan önce açık olan bütün dosyalar kapatılmalıdır.
fclose işlemi ile erişilen bütün arabelleklerdeki bilgiler, akış kapatılmadan
önce dosyaya kaydedilir ve sistem tarafından ayrılan arabellek kapatma
üzerine boşaltılır. Bu işlem yapılmasa ara bellekte bekletilen veriler
kaybolabilir.
Örnek 2: fclose( )
fclose(dp);
fclose(fp);
fclose(dosya);

C Programlama Dili Ders Notları Dr. Oğuz ÜSTÜN


fprintf( ) Fonksiyonu ve fscanf( ) Fonksiyonu

fprintf(dosya_pointeri, “format_dizisi”, argüman_listesi );

fopen ile yazım amaçlı açılmış bir dosyaya formatlı bir bilginin yazdırılması
amacıyla kullanılır. fprintf fonksiyonunun kullanımı dosya pointeri ilavesi
dışında printf fonksiyonu kullanımıyla tamamen aynıdır.

fscanf (dosya_pointeri, “format_dizisi”, argüman_listesi );

fopen ile okuma amaçlı açılmış bir dosyadan formatlı bir bilginin okunarak
programa aktarılması amacıyla kullanılır. fscanf fonksiyonunun kullanımı
dosya pointeri ilavesi dışında scanf fonksiyonu kullanımıyla tamamen aynıdır.

C Programlama Dili Ders Notları Dr. Oğuz ÜSTÜN


Örnek 3: fprintf( )

#include<conio.h>
#include<stdio.h>
void main()
{
FILE *dd; //dd:dosya pointeri tanımlanıyor.
int i,no;
dd=fopen("d:\\enf_106\\rakam.txt","w"); //rakam.dat dosyası açılıyor
clrscr();
for (i=1;i<=5;i++)
{
printf("%d.sayıyı giriniz:",i);
scanf("%d",&no);
fprintf(dd,"%d %d\n",i,no);; //rakam dosyasına no değeri yazılıyor
}
fclose(dd); //dosya kapatılıyor...
}

C Programlama Dili Ders Notları Dr. Oğuz ÜSTÜN


Örnek 4: fscanf( )

#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
FILE *dd;
int i,no;
dd=fopen("d:\\enf_106\\rakam.txt","r");
while(fscanf(dd,"%d %d\n",&i,&no)!=EOF) printf("%d %d\n",i,no);
fclose(dd);
getche();
}

Burada EOF( end of file) fprintf ile yazımda dosya sonuna konulan
sonlandırma işaretidir.

C Programlama Dili Ders Notları Dr. Oğuz ÜSTÜN


Kaynaklar

• Kemal YARCI, Programlama (C dili), Yüce Yayınları.


• Hakan ERDUN, Fehmi DEMİRALP, Turbo C Programlama Dili, Beta
Yayınları.
• Alparslan GÜRSOY, Özgen GÜLMEN, C Programlama Dili.
• Şevki DEMİRBAŞ, Oğuz ÜSTÜN, Nihat ÖZTÜRK, BELTEK kursu
C/C++ ders notları, Gazi Üniversitesi.

C Programlama Dili Ders Notları Dr. Oğuz ÜSTÜN

You might also like