Input/Output (Giriş/Çıkış)
C++ da I/O (input/output) yani giriş/çıkış işlemi akış kavramını kullanıyor. Akış, bayt veya veri akışı dizisidir. Performansı hızlı hale getirir. Baytlar ana bellekten yazıcı, ekran veya ağ bağlantısı gibi bir cihaza akıyorsa, buna çıkış işlemi denir. Baytlar yazıcı, ekran veya ağ bağlantısı vb. gibi aygıtlardan ana belleğe akıyorsa, buna giriş işlemi denir.
- Giriş Akışı: Bayt akış yönü cihazdan ana belleğe (örneğin klavyeden girilen kelimeler), bu işleme giriş adı verilir.
- Çıkış Akışı: Bayt akış yönü ters ise, yani ana bellekten cihaza (ekran), bu işleme çıkış denir.
I/O işlemleri için C++ ‘da bulunan “Header” dosyaları şunlardır:
- iostream: Sırasıyla standart çıkış akışına, standart giriş akışına ve standart hata akışına karşılık gelen cout, cin ve cerr nesnelerini tanımlamak için kullanılır.
- iomanip: iomanip giriş çıkış manipülatörleri anlamına gelir. Bu dosyalarda bildirilen yöntemler akışları işlemek için kullanılır. Bu dosya setw, setprecision vb. tanımları içerir.
- fstream: Kullanıcı kontrollü dosya işleme hizmetleri bildirmek için kullanılır.
1- Standart çıkış akışı (cout)
Genellikle standart çıkış cihazı görüntü ekranıdır. C++ cout deyimi ostream sınıfının bir örneğidir. Genellikle görüntü ekranı olan standart çıktı aygıtında çıktı üretmek için kullanılır. Ekranda görüntülenmesi gereken veriler, ekleme operatörü (<<) kullanılarak standart çıkış akışına (cout) eklenir.
#include <iostream> using namespace std; int main() { char exp[] = "Caner KARADAG"; cout << exp << " – Computer Enginner"; return 0; }
Sonuç :
Caner KARADAG – Computer Enginner
Yazmış olduğum programın da bazı ifadelerin ne anlama geldiği belirtmek gerekirse;
- #include <iostream>: Bu deyim derleyiciye iostream dosyasını eklemesini söyler. Bu dosya, programımızda kullanabileceğimiz önceden tanımlanmış giriş/çıkış (i/o) işlevlerini içerir.
- using namespace std: – Bir ad alanı fonksiyonlarımız, değişkenlerimiz vb. Olan bir bölgeye benzer ve kapsamları o bölgeyle sınırlıdır. Burada std bir ad alanı adıdır, bu derleyiciye tüm değişkenler, fonksiyonlar vb. için o bölgeye bakmasını söyler.
- exp: Kullanıcı tarafından belirtilmiş değişkendir. Kullanıcı isterse başka değişken adı belirleyebilir.
- char: Bu deyim sistem tarafından tanımlı bir değişken tipidir.
- int main(): Adından da anlaşılacağı gibi, programımızın ana işlevi budur ve programın yürütülmesi bu işlevle başlar, burada int derleyiciye bu işlevin bir tamsayı değeri döndüreceğini belirten dönüş türüdür. Ana fonksiyonun sonunda bir 0 dönüşü ifademizin ana nedeni budur.
2- Standart giriş akışı (cin)
Genellikle bir bilgisayardaki giriş aygıtı klavyedir. C ++ cin deyimi iostream sınıfının bir örneğidir ve genellikle klavye olan standart giriş aygıtından girdi okumak için kullanılır. Ekstraksiyon operatörü (>>) girişleri okumak için cin nesnesiyle birlikte kullanılır. Ekstraksiyon operatörü verileri, klavye kullanılarak girilen nesne cininden ayıklar.
- Cin ve integer tipli örnek
#include <iostream> using namespace std; int main( ) { int number; cout << "Numara Giriniz: "; cin >> number; cout << "Girdiğiniz numara: " << number << endl; }
Giriş:
Numara Giriniz: 7
Çıktı:
Girdiğiniz numara: 7
- Cin ve string tipli örnek
#include <iostream> #include <string> using namespace std; int main () { string name,surname; cout << "Adınız: "; getline (cin, name); cout << "Soyadınız: "; getline (cin, surname); cout << "Merhaba Adınız:" << name << ", Soyadınız:"<< surname << endl; return 0; }
Giriş:
Adınız: Caner Soyadınız: KARADAG
Çıktı:
Merhaba Adınız:Caner, Soyadınız:KARADAG
3- Standart bitiş çizgisi (endl)
Endl, ostream sınıfının önceden tanımlanmış bir nesnesidir. Yeni bir satır karakteri eklemek için kullanılır ve akışı temizler. Standart bitiş çizgisinin (endl) basit örneğine bakalım:
#include <iostream> using namespace std; int main( ) { cout << "C++ "; cout << "Caner KARADAG"<<endl; cout << "Computer Engineer"<<endl; return 0; }
Çıktı:
C++ Caner KARADAG Computer Engineer
4- Arabelleğe alınmamış standart hata akışı (cerr)
C++ serr, hataları çıktı almak için kullanılan standart hata akışıdır. Bu aynı zamanda ostream sınıfının bir örneğidir. C++ ‘daki cerr arabelleğe alınmadığından, hata mesajının hemen görüntülenmesi gerektiğinde kullanılır. Hata mesajını saklamak ve daha sonra görüntülemek için herhangi bir tamponu yoktur.
#include <iostream> using namespace std; int main() { cerr << "Bir hata oluştu!"; return 0; }
Çıktı:
Bir hata oluştu!
5- Arabelleğe alınmış standart hata akışı (clog)
Bu aynı zamanda iostream sınıfının bir örneğidir ve hataları görüntülemek için kullanılır, ancak cerr’den farklı olarak, hata önce bir tampona eklenir ve tamamen dolduruluncaya kadar tamponda saklanır. Hata mesajı da ekranda görüntülenecektir.
#include <iostream> using namespace std; int main() { clog << "Bir hata oluştu!"; return 0; }
Çıktı:
Bir hata oluştu!