Amiga Dünyası sayı 17, sayfa 29

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 29

fprintf(fp,"kontrol dizisi",argument listesi);

Kontrol dizisi ve argument listesi printf() fonksiyonunda olduğu gibi işler. Bir örnek verelim;

#include <stdio.h>

main()

{

char c; . int a,b; FİLE *fp; fp = fopen("deneme","w"); if(fp == NULL) {

printf("Dosya açılamadı"); exit();

}

lsc;inf(stdin,"%d %d %e",&a,&b,&c); fprintf(fp,"%d %d %c",a,b,c); fclose(fp); }

fprintf() fonksiyonu, verilen değişkenleri dosyaya yazıyor. Bir de dikkat ettiyseniz fscanf() fonksiyonunu kullandık. Fakat burada bilgiyi bir dosyadan değil de klavyeden aldık. Dosya için stdin yerine fp kullanmalıyız. fscanf() fonksiyonunun genel kullanım şekli scanf()'e benziyor.

Sıra geldi fread() ve fwrite() fonksiyonlarına. Bu fonksiyonlar, birden fazla bilgiyi aynı anda dosyadan okuyabilir veya yazabilir. Genel kullanım şekli ise şöyledir:

fread(buffer,byte sayısı,adet,fp); fwrite(buffer,byte sayısı,adet,fp);

Burada buffer, veri için kullandığımız değişkeni veya alanı belirtiyor, byte sayısı ise okunacak veya yazılacak byte'ı, adet ise bu işlemin sayısını belirtiyor. Aşağıdaki örneği inceleyelim:

#include <stdio.h>

main()

{

char s[50J; FİLE *fp;

strcpy(s,"Deneme datası");

fp = fopen("deneme","w"); if(fp == NULL) {

printfC'Dosya açılamadı"): exit(): }

fwrite(s,strlen(s), 1 ,fp); fclose(fp); }

'Deneme' datası, deneme dosyasına 1 kez olmak üzere yazılacaktır. Adedi 2 verirsek, bu işlemi iki defa yapmış oluyoruz. Yani 'Deneme datası' arka arkaya iki defa dosyaya aktarılıyor.

feof() fonksiyonu, dosya sonuna gelip gelmediğimizi kontrol eder. Sıfırdan farklı bir sayı, dosya sonuna geldiğimizi gösterir. Kullanımı:

feof(fp); şeklindedir.

ferror(), bize varsa dosya hatasını bildirir. Yolladığı değer pozitif ise hata olduğunu, negatif ise hata olmadığını belirtir. ferror(fp); şeklinde kullanılır.

rewind() komutu, dosya pozisyon göstergecini başa getirecek şekilde hazırlar.

Kullanımı:

rewind(fp); şeklindedir.

Bu aylık buraya kadar. Gelecek ay, dosya işlemlerinin ikinci kısmı olan 'Unbuffered file system'i inceleyeceğiz. Böylece C'de oldukça önemli olan dosya işlemlerini de öğrendikten sonra, artık daha yeni programlara adım atabiliriz.

Gelecek ay yeni bir C yazısında buluşmak üzere hepinize iyi çalışmalar....

Klavyeyle gezinmek için ← ve → tuşları.