Bildirim
int fputc(int char, FILE *stream);
int putc(int char, FILE *stream);
Açıklama
char parametresi ile gösterilen karakteri (unsigned char) stream parametresi ile gösterilen akışa yazar ve akış konum göstergesini bir sonraki konuma ilerletir.
Parametreler
char: Akışa yazılacak karakter değeridir.
stream: Çıkış akışını tanımlayan FILE nesnesi işaretçisidir.
Dönüş değeri
Başarı durumunda yazılan karakteri geri döndürür. Hata durumunda ise EOF değeri geri döndürülür ve hata göstergesi ayarlanır.
Örnek
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
fpos_t pos;
char *p="Bilgisayar";
int id;
if ((fp = fopen ("dosya.txt", "w+")) == NULL) {
printf("Dosya açma hatası!");
exit(1);
}
while (*p) {
fgetpos(fp, &pos);
printf("Dosyanın aktif konumu: %ld", pos);
printf(" karakter: %c\n", *p);
fputc (*p, fp);
p++;
}
printf("\n");
rewind(fp);
while ((id=fgetc(fp))!= EOF) { /* Dosya sonuna kadar (EOF) karakter karakter okuma işlemi */
printf("%c", id);
}
fclose(fp);
return 0;
}
Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:
Dosyanın aktif konumu: 0 karakter: B Dosyanın aktif konumu: 1 karakter: i Dosyanın aktif konumu: 2 karakter: l Dosyanın aktif konumu: 3 karakter: g Dosyanın aktif konumu: 4 karakter: i Dosyanın aktif konumu: 5 karakter: s Dosyanın aktif konumu: 6 karakter: a Dosyanın aktif konumu: 7 karakter: y Dosyanın aktif konumu: 8 karakter: a Dosyanın aktif konumu: 9 karakter: r Bilgisayar
Yukarıdaki program, yazma ve okuma modunda (w+) açtığı dosyaya fputc() fonksiyonu ile yazdığı karakter dizisini dosyadan karakterleri fgetc() fonksiyonu ile tek tek okuyarak ekrana yazar. Her karakter yazma işleminde dosya konumunu da ekrana yazar.