BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C standart kütüphanesi > <stdio.h> > fflush

fflush() fonksiyonu

Bildirim

int fflush(FILE *stream);

Açıklama

Çıkış akışları için, akışın arabelleğindeki yazılmamış veriyi ilgili çıkış aygıtına yazar.

Eğer stream parametre değeri NULL ise, fflush() fonksiyonu programın tüm açık akışlarının çıktı tamponlarını temizler.

Parametreler

stream: Yazılacak dosya akışını tanımlayan FILE nesnesi işaretçisidir.

Dönüş değeri

Başarı durumunda 0 değeri geri döndürülür. Hata oluşursa, EOF değeri geri döndürülür ve hata göstergesi ayarlanır.

Örnek


#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main(void)
{
    FILE *fp;
    char cdizi[20];
    int id;

    if ((fp = fopen ("dosya.txt", "w+")) == NULL) {
         printf("Dosya açma hatası!");
         exit(1);
    }

    fputs("B2ilg3isa5yar", fp);

    rewind(fp);
    if (fgets(cdizi, 20, fp)) printf("%s\n", cdizi);

    rewind(fp);
    while ((id=getc(fp))!= EOF) {      /* Dosya sonuna kadar (EOF) karakter karakter okuma işlemi */
       if (isdigit(id)) {              /* Eğer bir sayı ise */
           fseek(fp, -1, SEEK_CUR);    /* Sayı değerinin olduğu yere dönüş */
           fputc('A', fp);             /* A karakteri ile değiştirme */
           fflush(fp);                 /* Akış belleğini temizleme */
       }
    }

    rewind(fp);
    if (fgets(cdizi, 20, fp)) printf("%s", cdizi);

    fclose(fp);

    return 0;
}

Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:

B2ilg3isa5yar
BAilgAisaAyar

Yukarıdaki program, yazma ve okuma modunda (w+) açtığı dosyaya yazdığı harf ve rakam içeren karakter dizisini önce herhangi bir işlem yapmadan doğrudan dosyadan okuyarak ekrana yazar. Sonra dosyadan karakterleri tek tek okuyarak ve rakam olan değerleri A karakteri ile değiştirdikten sonra dosyaya kaydeder. Dosya içeriğini tekrar ekrana yazar.