bilgisayar programlama 1hbahtiyar/dersler/icerik/cplusplus-ders6.pdf · donanım mimarisi yazılım...
TRANSCRIPT
![Page 1: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/1.jpg)
Bilgisayar Programlama 1
DERS 6: DOSYA İŞLEMLERİ (OKUMAK) DR. HÜSEYİN BAHTİYAR
![Page 2: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/2.jpg)
Donanım Mimarisi
Yazılım
Giriş/Çıkış Birimleri Central
Processing Unit (CPU)
Ana Bellek
İkincil Bellek
Ne yapacağım?
2
![Page 3: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/3.jpg)
Donanım Mimarisi
Yazılım
Giriş/Çıkış Birimleri Central
Processing Unit (CPU)
Ana Bellek
İkincil Bellek
Ne yapacağım?
Klavye Ekran Mouse Hoparlor….
3
![Page 4: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/4.jpg)
Donanım Mimarisi
Yazılım
Giriş/Çıkış Birimleri Central
Processing Unit (CPU)
Ana Bellek
İkincil Bellek
Ne yapacağım?
Ram: değişkenler burada yaşıyor
4
![Page 5: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/5.jpg)
Donanım Mimarisi
Yazılım
Giriş/Çıkış Birimleri Central
Processing Unit (CPU)
Ana Bellek
İkincil Bellek
Ne yapacağım?
Ram: değişkenler burada yaşıyor
Bilgisayar (Program) kapanınca kayboluyor.
5
![Page 6: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/6.jpg)
Donanım Mimarisi
Yazılım
Giriş/Çıkış Birimleri Central
Processing Unit (CPU)
Ana Bellek
İkincil Bellek
Ne yapacağım?
Uzun ömürlü saklama, usb bellek sabit disk vs…
6
![Page 7: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/7.jpg)
Dosya işlemleri için1. Öncelikle dosya kütüphanesini eklemeliyiz
#include<fstream>
2. Dosya işlemi yapacağımız değişkeni tanımlamalıyız
ifstream dosya_oku;
3. Bilgisayar akıllı bir alet olmadığından sadece dosya_oku isminde bir değişken ile dosya ismi yapacağımızı, sanmaktadır. Dosyayı açmak için.
dosya_oku.open(“dosyaadi”);
7
![Page 8: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/8.jpg)
ifstream? fstream? ofstream?Komut İşlem
ifstream okumak için (input)
ofstream yazmak için (output)
fstream hem okumak hem yazmak için
8
![Page 9: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/9.jpg)
. operatörü?❖ . operatörü kullandığımız sınıfa bağlı alt fonksiyonlara
erişmemizi sağlayan operatördür.
❖ Kısacası ifstream’e özel fonksiyonlara erişmek için öncelikle ifstream yapısında bir değişken tanımlayıp değişken_adi.fonksiyon() şeklinde alt fonksiyonlarına erişebiliriz.
9
![Page 10: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/10.jpg)
Dosya açmaya çalışalım
10
![Page 11: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/11.jpg)
Dosya açmaya çalışalım
fstream headerını çağırdık buradaki fonksiyonları kullanacağız dedik.
11
![Page 12: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/12.jpg)
Dosya açmaya çalışalımokumak için (ifstream)
kullandık değişkenimiz myfile
12
![Page 13: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/13.jpg)
Dosya açmaya çalışalım
deneme.txt isimli bir dosyayı açmasını söyledik
13
![Page 14: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/14.jpg)
Dosya açmaya çalışalım
eğer dosyayı açabildiysek??
14
![Page 15: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/15.jpg)
Dosya açmaya çalışalım
ekrana dosyayi actik yazdırdık
15
![Page 16: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/16.jpg)
Dosya açmaya çalışalım
açamadıysak???
16
![Page 17: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/17.jpg)
Dosya açmaya çalışalım
hataaaaa! yazdırdık
17
![Page 18: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/18.jpg)
Neden çalışmadı???❖ Bilgisayar programın bulunduğu klasörde deneme.txt
dosyasını aradı!
❖ Bulamadı ve hata verdi.
❖ Benzer sorunla karşılaşırsak ilk bakmamız gereken durum dosyanın doğru yerde olup olmadığını kontrol etmektir.
❖ Veya dosyanın bulunduğu klasörde pwd komutunu kullanarak klasörün yolunu sisteme girmektir.
18
![Page 19: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/19.jpg)
deneme.txt yi oluşturalım❖ Text editörü açıp programın bulunduğu yere
deneme.txt isimli bir dosya oluşturalım.
❖ dosyanın içerisine şimdilik bir şey yazmaya gerek yok.
❖ Şimdi programımızı çalıştıralım.
19
![Page 20: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/20.jpg)
Dosyayı okumak❖ Şimdi dosyanın içerisinde okul numaramızı yazalım ve
programa aşağıdaki hale getirelim.
Okunan isimli tamsayı değişkeni yarattık.
20
![Page 21: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/21.jpg)
Dosyayı okumak❖ Şimdi dosyanın içerisinde okul numaramızı yazalım ve
programa aşağıdaki hale getirelim.
Dosyadan aldığımız değeri okunan içine atadık.
Dikkatt!! değer int değil ise program hatalı olur
21
![Page 22: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/22.jpg)
Dosyayı okumak❖ Şimdi dosyanın içerisinde okul numaramızı yazalım ve
programa aşağıdaki hale getirelim.
Ekrana dosya içinden okuduğumuz
değeri yazdırdık
22
![Page 23: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/23.jpg)
Dosyayı sonuna kadar okumak?❖ Peki elimizde içerisinde birden fazla integer olan bir dosya
olsaydı?
❖ Bu gibi durumlar için fstream altındaki .eof() fonksiyonunu while döngüsü ile kullanırız.
❖ while kullanmamızın sebebi dosyanın uzunluğunu bilmeyebileceğimizden dosyanın sonuna gelene kadar (end of file -> eof ) okumaya devam etmesini istememizdir.
❖ Okul numaramızın yanına doğum tarihimizi gün ay ve yıl olarak alt alta yazalım.
23
![Page 24: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/24.jpg)
Dosya sonuna kadar okumak
Dosya bitene kadar oku
24
![Page 25: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/25.jpg)
Yeni bir değişken string❖ deneme.txt isimli dosyamızın en altına adımızı yazalım
ve programdan okumasını isteyelim.
❖ Neler oldu?
25
![Page 26: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/26.jpg)
Yeni bir değişken string❖ deneme.txt isimli dosyamızın en altına adımızı yazalım ve
programdan okumasını isteyelim.
❖ Neler oldu?
❖ Harf karakterlerini (sözcükleri) okuyabilmesi için, yeni bir değişken ile tanışmamız gerekiyor.
❖ Bu değişken string olarak isimlendirilir.
❖ Öncesinde kütüphanesini tanıtmamız gerekmektedir.
#include <string>
❖ string degisken; şeklinde tanımlayabiliriz.
26
![Page 27: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/27.jpg)
String ile karakter şeklinde okumak
27
![Page 28: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/28.jpg)
getline() ile satır satır okumak
28
❖ C++’ın içerisinde dosya okumak (veya klavyeden giriş için) işlerimizi kolaylaştırıcı bir çok fonksiyonu bulunmaktadır.
❖ Bunlardan biri getline fonksiyonudur.
❖ Bu fonksiyon tüm satırı bir string değişkeni olarak alır, böylece dosyayı satır satır okumuş oluruz. Kullanımı:
getline(dosya_degiskeni,string_degiskeni);
![Page 29: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/29.jpg)
Getline ile örnek
while döngüsü sayesinde, myfile içerisindeki satırlar okunan değişkeninin içerisine yazılır.
![Page 30: Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders6.pdf · Donanım Mimarisi Yazılım Giriş/Çıkış Birimleri Central Processing Unit (CPU) Ana Bellek İkincil Bellek](https://reader035.vdocuments.pub/reader035/viewer/2022062414/5e276c28bdfbc30229176306/html5/thumbnails/30.jpg)
Kaynaklar!http://www.cplusplus.com/doc/tutorial/ !www.py4e.com !C++ How to program (Deitel) !Ferhat Özok Bilgisayar Programlama I ders notları