Başlangıç > Kodlar > C’de Dosyaya Yazdırma (Bölüm 1)

C’de Dosyaya Yazdırma (Bölüm 1)

Bu dersimizde C programlama dilinde basitçe “fopen fputc fclose” fonksiyonlarını kullanarak dosyaya yazdırma işlemi yapıyoruz.

C PROGRAMLAMADA DOSYA İŞLEMLERİ

Belirli bir düzeyde C programlama dilini öğrendikten sonra artık yazmakta olduğunuz programların aldıkları girdileri bir yere depolama ihtiyacı doğacaktır.Yazmış olduğunuz bir öğrenci ve not hesaplama programınızın keşke her programı açışımda yeniden sıfırdan tüm öğrencileri ve notları girmek zorunda olmasam diye düşünmeye başladığınızda artık Dosya işlemlerini öğrenme vaktiniz gelmiş demektir.

C Programlamada Nedir Bu Dosya İşlemleri?

Programlarınızı girdi(input) olarak aldığı verileri bir text dosyasında yada word dosyasında vb. saklamasıdır. Artık C programınızın yaratıp içine veriler koyacağı text dosyanız Sabit diskiniz yani harddiskinizde saklanıp istediginiz zaman açıp istediğiniz zaman tekrar kullanabileceksiniz.

Hiç Veritabanı Programcılığı Nedir, Duydunuz mu?

Bu yazı dizimin sonunda sizde veri tabanı programcılığına adım atan nadir kişilerden olacaksınız. Bu kadar kolaymı dediginizi duyar gibiyim elbette verilerinizi bir dosyada klasörde word dosyasında SQL de yada accessde saklayabiliyorsanız siz artık bir veri tabanı programcılığına adım atmış bir kişisinizdir.

Dosyalara Veri Yazmak

Fazla konuyu sallayıp yazıyı uzun ve sıkıcı bir hale getirmenin bir anlamı yok benim yazdığım makalelerin hepsi konuşma tarzında olur genelde çünkü amaç öğretmektir dahası yok.

C programlama dilini bir insan ama zor anlayan bir insan olarak almak en akıllıcasıdır. Diyelimki bir dosyaya veri yazdırıcaksınız ne yapmalıyız?

1-) Dosyayı Açmak Zorundayız
2-) Dosyaya bir şeyler (Veriler) ekliycez haliyle
3-) Dosyamızı kapatmak zorundayız .

Hadi bunları öğenelim artık:

(1) Dosyaların Açılması fopen( ) Fonksiyonu

C dedigimiz gibi geç anlayan bir kişi diye düşünürsek bir dosya işlemi yapacagımızı FILE İngilizce dosya anlamındaki bu kelimeyle belirtiyoruz .
FILE *DosyaOku; gibi bir yazıyı main fonksiyonu içinde belirttigimizde DosyaOku diye bir dosyamızın olacağını (pointer) işaretçiler konusunu biliyorsak FILE tipinde bi işaretçi döndürmüş oluyoruz)

Tamam güzel dosyayı C ye anlattık ama Bunun yeri neresidir bu dosyamızın harddiskteki adı nedir halen bilinmiyor o yüzden gelin birde Bu geç anlayan arkadaşımıza Dosyamız Nerede Adı Nedir bunu tanıtalım:

FILE  *DosyaOku;

Bu kısımın altına:

DosyaOku = fopen("emre.txt","w");

kısmını ekleyince C anlıyor ki DosyaOku Diye bir dosyamız var ve fopen fonksiyonu ile emre.txt dosyasını açmasını istiyoruz.

#include<stdio.h>
      int main()
      { FILE *DosyaOku;
      DosyaOku = fopen("emre.txt","w");

      getchar();
      return 0;
      }

Böyle bir yazıyı Borland C compilerimize yazıp çalıştırırsak masaüstünüzde emre.txt diye bir notepad dosyasının oluştuğunu görürsünüz.

Peki fopen (“emre.txt”,”w”); “w” ne işe yarıyor?

Bu bir mod arkadaşlar yani yani İngilizce write kelimesinin kısaltılmışı oluyor. Write yazmak demek yani bir açtıgımız emre dosyasını yazmak için açtıgımızı söylüyoruz. Hani oyunlarda ve bazi sitelerde görürüz ya God Mod Writebla Mod felan yanı amacımız neyse onu belirtiyoruz. Peki Sadece w mu kullanıcaz elbette hayır!

 Yazmak için  "w"    àWrite
Okumak için  "r"    à Read
Altına yazmak için "a"  à Append   (bu da ne demek şimdi)

Bu append komutu şu demek arkadaşlar: eger write komutunu kullanarak bir dosyaya C ile yazı yazdırırsanız her yeni bir şey yazdırdıgınızda üzerine yazacaktır, yani eski dosyanızın içerigi sürekli degişecektir ama append komutunu kullanırsanız altına yazacaktır.

Şöyle ki:

İlk yazdıgınız yazı Sanalkurs olsun, emre.txt dosyanız içinde Sanalkurs yazıyor. Sonra programı kapatıp tekrar açtınız ve Emre Çamalan yazdınız artık dosyanızın içindeki Sanalkurs silinip yerine sadece Emre Çamalan yazar.

Şimdi konuya devam edelim:

Bir de ben bu dosyayı illa masaüstüne mi kaydedeyim, başka yere kaydetsem olmaz mı?

Elbette olur.

fopen("emre.txt","w");

kısmını

fopen("C:\emre.txt","w");

dersem bu seferde C içine atmış olurum bunu siz türetebilirsiniz bu şekilde.

Artık bir dosyayı sorunsuz açabiliyoruz. Geçelim mi artık 2. kademeye? Neydi?

(2)Dosyamıza Karakterleri Yazdırmak-fputc( ) Fonksiyonu

Artık dosyamıza karakterlerde yazabiliceğiz. fputc( ) fonksiyonu sayesinde karakterleri text dosyamıza kaydedebiliceğiz.

Fputc fonksiyonunun kullanım prototipi fputc(‘karakter’,DosyaOku );
Şeklindedir dosya oku diye daha önceden açtıgımız emre.txt dosyasına ” arasındaki karakteri yazacaktır. Tabi Sadece karakteri yazar yani tek harf..

fputc('A',DosyaOku );
fputc('L',DosyaOku );
fputc('İ',DosyaOku );

Böyle bir kod bizim dosyamıza ALİ yazacaktır:

#include<stdio.h>
      int main()
      { FILE *DosyaOku;
      DosyaOku = fopen("emre.txt","w");
      fputc('A',DosyaOku );
      fputc('L',DosyaOku );
      fputc('i',DosyaOku );

      getchar();getchar();
      return 0;
      }

Dosyamızı açıp bakarsanız içinde ali yazdıgını görürüsünüz. Son aşamamız olan Dosyamızı kapatma aşamasına geçebiliriz artık.

(3)Dosyamızın Kapatılması fclose( ) Fonksiyonu

En son olarakta işimizin bittigini C programımıza söylüyoruz, bunu yapmak çok kolay:

fclose(DosyaOku);

dedigimizde daha önceden açtıgımız dosyamızın artık kapatılması işimizin bittigini söylüyoruz.

Arkadaşlar, bu makalem başlangıç seviyesinde C programlamada dosyaya bir şey nasıl yazılır, kabaca bunu göstermeye çalıştım. Elbette bunu ileri taşıyıp ciddi anlamda nasıl uzun metinler dosyalara yazılır, bunu da ileri seviye bir konu olarak gördügüm için ayrıca “C’de ileri Seviye Dosyaya Yazdırma” adında devam ettim.

Umarım faydalı olabilmişimdir. Her türlü sorularınızı bekliyorum. Amaç öğretmek.

Reklamlar
Kategoriler:Kodlar
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: