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

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

fgets() fonksiyonu

Bildirim

char* fgets(char *str, int count, FILE *stream);

Açıklama

Verilen dosya akışından en fazla count parametre değerinin 1 eksiği kadar karakter okur ve okuduğu karakterleri str parametresi ile gösterilen karakter dizisine atar. Dosya sonuna erişildiğinde veya bir yeni satır karakteri ile karşılaşıldığında belirtilen sayıda karakter okumadan işlem sona erer.

Stream parametresinde stdin değeri kullanıldığında klavyeden karakter girişi de okunabilir.

Okunan karakterler str ile gösterilen karakter dizisine atandıktan sonra, str sonuna otomatik olarak, dizi sonu belirlemek üzere, NULL bir karakter ('\0') eklenir.

Klavyeden veri okuma işleminde (stdin), girilebilecek maksimum karakter sayısından (count-1) daha az karakter girilirse, giriş işlemini sona erdiren yeni satır karakteri (10), '\0' karakterinden önce diziye eklenir.

Parametreler

str: Akıştan okunacak karakterlerin atanacağı karakter dizisidir.

count: Akıştan okunacak karakter sayısını gösteren int bir değerdir.

stream: Karakterlerin okunacağı akışı tanımlayan FILE nesnesi işaretçisidir.

Dönüş değeri

Başarı durumunda, fonksiyon str parametresinin içeriğini geri döndürür. Dosya sonu ile karşılaşılırsa ve hiçbir karakter okunmazsa, str içeriği değişmeden kalır ve NULL bir işaretçi geri döndürülür.

Eğer bir hata oluşursa, NULL bir işaretçi döndürülür.

Örnek


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

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

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

    fputs("Bilgisayar", fp);

    rewind(fp);

    // Dosyadan okuma
    fgets(cdizi, 11, fp);
    printf("%s\n", cdizi);

    // Klavye girişini okuma
    printf("En fazla 10 karakter uzunluğunda bir karakter dizisi giriniz: ");
    // ENTER tuşuna basılıncaya kadar karakter girişi devam eder,
    // ancak sadece ilk 10 karakter işlem görür. Fazla karakter girilse bile dikkate alınmaz.
    fgets(cdizi, 11, stdin);
    printf("%s", cdizi);

    fclose(fp);

    return 0;
}

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

Bilgisayar

Yukarıdaki program, yazma ve okuma modunda (w+) açtığı dosyaya fputs() fonksiyonu ile yazdığı karakter dizisini dosyadan karakterleri fgets() fonksiyonu ile okuyarak ekrana yazar.