şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;



Benzer belgeler
Temel Dosya İşlemleri. Kütük Organizasyonu 1

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

BMB1002 Bilgisayar Programlamaya Giriş. Dosyalar. Prof. Dr. Necmettin Kaya

ALGORİTMA VE PROGRAMLAMA II

Metin Dosyaları. Metin Dosyaları Dosya Açma ve Kapama Dosya Okuma ve Yazma Rastgele Erişim Standart Girdi/Çıktı Hata Kontrolü

DOSYA İŞLEMLERİ Programlama dilleri hafta -

Temel Bilgisayar Programlama

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Eln 1001 Bilgisayar Programlama I

Eln 1002 Bilgisayar Programlama II

PROGRAMLAMAYA GİRİŞ DERS 2

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

C Dosyalama. Öğr. Gör. M. Ozan AKI. Rev 1.0

Genel Programlama II

PROGRAMLAMA. Dosyalama İşlemleri. Yrd. Doç. Dr. Bülent Çobanoğlu. Sakarya Üniversitesi Mekatronik Mühendisliği. Yrd.Doç.Dr.

Yrd. Doç. Dr. Caner ÖZCAN

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

DOSYALAR. Temel terimler Hafta. Dr. Fahri Vatansever

10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI

Dosyalar 1.1 Dosya Nedir?

Dr. Fatih AY Tel: fatihay@fatihay.net

int printf (const char *format [, argument,...]);

Ders 4: Temel Giriş/Çıkış Fonksiyonları

Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

Adı Soyadı Öğrenci No. Toplam (100p) 2 (10p) +10p. 5 (25p) +10p. 3 (20p) 4 (25p) 1 (20p)

ELN1001 BİLGİSAYAR PROGRAMLAMA I

Yrd. Doç. Dr. Caner ÖZCAN

C PROGRAMLAMA D İ L İ

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

Algoritma ve Programlama: Karar Yapıları ve Döngüler

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin);

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

BÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI. C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir.

Programlama Dilleri Laboratuvarı

Adım Adım C. Dr. Hidayet Takcı

Fen ve Mühendislik Uygulamalarında MATLAB

Bölüm 2 - C ile Programlamaya Giriş

Hafta 12 Karakter Tutan Diziler

ALGORİTMA VE PROGRAMLAMA II

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)

Temel Giriş/Çıkış Fonksiyonları

Fonksiyonlar (Altprogram)

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri

Genel Programlama II

C Konsol Giriş Çıkış Fonksiyonları

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Sınav tarihi : Süre : 60 dak.

BÖLÜM 5: TEMEL GİRİŞ/ÇIKIŞ FONKSİYONLARI

Giris {\} /\ Suhap SAHIN Onur GÖK

BİL1001 Bilgisayar Bilimlerine Giriş 1

void main() { int a[] = {1, 2, 3, 4, 5, 6}; int *p=&a[2]; int **pp=&p; printf("%d", **pp+2); }

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri hafta -

ALGORİTMA VE PROGRAMLAMA II

BİLG Dr. Mustafa T. Babagil 1

C Programlama Dilininin Basit Yapıları

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

C Programlama printf() Fonksiyonu

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

BÖLÜM 12: DOSYA İŞLEMLERİ

Print Komutu ile Değişkenleri Yazdırmak

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

Diziler (Arrays) Çok Boyutlu Diziler

2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

C PROGRAMLAMA D İ L İ

Giriş. ENF102 Jeoloji

C ile Uygulamalar 4 - Cevaplar

Bilgisayar Programlama MATLAB

Strings(Karakter Dizisi)

Jval tipi. Genel veri yapılarını kullanacağımız zaman Jval den faydalanırız.önemli olanlar aşağıda mevcuttur:

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

STRİNG DİZİLER(KATARLAR)

12. Saat : Dosyalar I (Files)

Değişken atama Kullanıcıdan veri girişi istendiğinde kullanılır. 1. Bir değişkene değer atama (örn: a=4 gibi) 2. Klavyeden veri girme

BİLG Dr. Mustafa T. Babagil 1

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

ALFASAYISAL BİLGİLER KARAKTER DİZİLERİ (STRING)

C PROGRAMLAMA D İ L İ

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Diziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları

Programlama Dilleri Laboratuvarı

C PROGRAMLAMA D İ L İ

C PROGRAMLAMA D İ L İ

C ile Uygulamalar 2 - Cevaplar

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:

Pascalda oluşturulacak dosyalar değişkenler gibi programın başında tanımlanır.

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Transkript:

Dosya İşlemleri Nedir? 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 dosyasını sabit diskiniz yani hard diskinizde saklayıp istediginiz zaman açıp istediğiniz zaman tekrar kullanabileceksiniz. Dosyalara Veri Yazmak 1-) Dosyayı Açmak 2-) Dosyaya Veriler Eklemek 3-) Dosyayı Kapatmak 1) Dosyaların Açılması fopen( ) Fonksiyonu C dilinde dosyalar FILE sözcüğü ile tanımlanmakta olup, aslında FILE yapısal bir veri tipidir. Diğer bir deyişle, stdio.h başlık dosyası içinde tanımlanmış bir yapıdır. Bu yapı Typedef struct short level; unsigned flags, char fd; unsigned char hold; short bsize, unsigned char *buffer, unsigned cahr *curp; unsigned istemp, short token; FILE; şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2; şeklinde tanımlayabiliriz. FILE *DosyaOku; gibi bir ifade kullandığımızda, DosyaOku diye bir dosyamızın olacağını ve FILE tipinde bi işaretçi döndürmüş olduğumuzu biliyoruz. int main() FILE *DosyaOku; DosyaOku = fopen("adiniz.txt","w"); NOT : 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.

Mod İşlevi r w a var olan bir dosyayı sadece okumak amacı ile açar. bir dosyayı bilgi yazmak için açar. Dosya daha önceden var ise içindeki bilgiler silinerek dosya başından yazmaya başlanır. var olan bir dosyanın sonuna bilgi eklemek için kullanılır. Eğer dosya yok ise yeni bir dosya açılır. r+ var olan bir dosya üzerinde hem okuma hem de yazma yapmak için açılır. w+ dosyayı okumak ve yazmak için yeniden açar. a+ dosyayı okumak ve yazmak için açar en son pozisyonda bekler. 2) Dosyamıza Karakterleri Yazdırmak fputc( ) Fonksiyonu fputc( ) fonksiyonu ile karakterleri text dosyasına kaydedebiliriz. fputc fonksiyonunun kullanım prototipi : fputc( 'karakter', DosyaOku ); Şeklindedir. DosyaOku diye daha önceden açtıgımız emre.txt dosyasına '' arasındaki karakteri yazacaktır. NOT: Sadece karakteri yazar, yani tek harf. FILE *DosyaOku; DosyaOku = fopen("emre.txt","w"); fputc('a',dosyaoku ); fputc('l',dosyaoku ); fputc('i',dosyaoku ); (3)Dosyanın Kapatılması fclose( ) Fonksiyonu En son olarak işimizin bittigini programa söylüyoruz : fclose(dosyaoku); dedigimizde daha önceden açtıgımız dosyamızın artık kapatılmasını söylemiş oluyoruz.

FILE *DosyaOku; DosyaOku = fopen("emre.txt","w"); fputc('a',dosyaoku ); fputc('l',dosyaoku ); fputc('i',dosyaoku ); fclose(dosyaoku); fputs() Fonksiyonu Bu fonksiyon dosyaya katar yazdırmaya yaramaktadır. char dizgi[30] ="nesnetabanliprogramlama"; FILE *dosya_yaz; dosya_yaz = fopen("gulnaz.txt","w"); fputs("gulnaz\tboruzanli\n",dosya_yaz); fputs("ege Universitesi Fen Fakultesi Matematik Bolumu\n",dosya_yaz); fputs(dizgi,dosya_yaz); fclose(dosya_yaz); getchar(); Hem string i tanımlayarak, hem de tanımlamadan text dosyasına yazı yazdırdık. fprintf( ) Fonksiyonu fpintf() fonksiyonu daha geniş bir kullanım alanına sahiptir. Mesela bir dosyadaki yazıları okutup sonra fprintf() fonksiyonu ile baska bir dosyaya yazı yazdırabiliriz, ya da yeni bir dosyanın ismini

ve içine yazılacakları sorarak programınızın içinde oluşturabilirsiniz. Basitçe fprintf() formatlı yazmaya yarar. char ad[30]="gulnaz BORUZANLI"; int no = 100; FILE *dosya_yaz; dosya_yaz = fopen("dene2.txt","w"); fprintf(dosya_yaz,"%s %d",ad,no); fclose(dosya_yaz); Örnek: Girilen sayı asal ise bu sayıyı dosyaya yazan bir C programı yazınız. #include <conio.h> void main () FILE *dosya=fopen("asal.txt","w"); int sayi,i; char asal; do printf("\nbir sayi giriniz="); scanf("%d",&sayi); asal='e'; for(i=2;i<sayi;i++) if(sayi%i==0) asal='h'; if (asal=='e') printf("asal sayi girdiniz %d \n",sayi); fprintf(dosya,"\ngirilen Asal Sayi\t%d",sayi); while(asal=='h'); fclose(dosya); puts("asal sayi dosyaya yazildi"); Örnek: Klavyeden bilgileri girilen 10 ogrencinin bilgilerini dosyaya yazdıran bir program yazınız. #include <conio.h> #include <stdlib.h> void main () FILE *enf=fopen("ogrenci.txt","w"); char ad[20],soyad[20]; int i; long int okulno;

puts("10 ogrenciye ait bilgileri girin:"); for (i=1;i<=10;i++) printf("\n%d. ogrencinin okul numarasi=",i); scanf("%ld",&okulno); printf("%d. Ogrencinin Adi=",i); scanf("%s",&ad); printf("%d Ogrencinin Soyadi=",i); scanf("%s",&soyad); fprintf(enf,"%ld %s %s\n",okulno,ad,soyad); fclose(enf); puts("veriler dosyaya yazildi"); Örnek: Klavyeden girilen iki tamsayı ve toplamını deneme.txt adlı bir dosyaya yazan C programı. FILE *yaz; int x,y,z; yaz = fopen("deneme.txt","w"); printf("toplanacak iki sayi girin : "); scanf("%d %d",&x,&y); z = x+y; fputs( "Bu dosya iki sayinin toplamini gosterir!\n",yaz ); fprintf(yaz,"%d + %d = %d",x,y,z); fclose(yaz); puts("bilgiler kaydedildi. Devam etmek için ENTER tuşuna basın."); getchar(); getc () Fonksiyonu c=getc(fp) şeklinde kullanılır ve pointer ile temsil edilen dosyadan 1 karakter okuyup c değişkenine etirir. fscanf( ) Fonksiyonu fscanf (fp, "biçim tanımları", değişkenler) şeklinde kullanılır. Bildiğimiz scanf gibi çalışmaktadır. Ancak klavyeden değil de bilgileri pointer ile temsil edilen dosyadan okumaktadır. Biçim tanımları kısmı normal scanf komutu ile aynıdır. Örnek: Öncelikle veri.txt ile bir dosya açıp içerisine sayıyı kaydedin. Sonra aşağıdaki programı derleyip çalıştırın. Programi çalistirinca sabit diskinizde cikti.txt seklinde bir dosya olusacaktir. int x; FILE *oku, *yaz; oku=fopen("veri.txt","r");

yaz=fopen("cikti.txt","w"); fscanf(oku,"%d",&x); fprintf(yaz,"x=%d\n",x); fclose(oku); fclose(yaz); printf("veri cikti.txt dosyasina yazildi\n"); Bu program bir dosyaya formatlı yazılmış olan verileri okur ve ekrana basar. ** tipler.dat dosyasına Ahmet d 1256 65489878 0.822 kaydedip, aşağıdaki program ile dosyadan okuyup ekrana yazdıralım. FILE *oku; char ktr[10],kr; int tam; long uzun_tam; float reel; oku=fopen("tipler.dat","r"); fscanf(oku,"%s\n%c\n%d\n%ld\n%f", ktr,&kr,&tam,&uzun_tam,&reel); fclose(oku); puts("dosyadan okunan veriler sirasiyla:"); printf("%s\n%c\n%d\n%ld\n%f",ktr,kr,tam,uzun_tam,reel);