1.7 Kullanıcı Girdisi (User Input)
C++ dilinde kullanıcıdan giriş (input) almak için standart giriş akışı olan cin
nesnesi kullanılır. cin
(console input) nesnesi, iostream
başlık dosyasında tanımlanmıştır ve klavyeden alınan veriyi programınıza aktarmak için kullanılır. cin
nesnesi, >>
(çıkarma operatörü) ile birlikte kullanılarak, kullanıcıdan alınan veriyi bir değişkene aktarır.
Temel Kullanım
Kullanıcıdan alınan girişler genellikle int
, float
, double
, char
ve string
gibi temel veri türleriyle ilişkilidir.
using namespace std;
:std
isim alanı (namespace
) kullanımını kolaylaştırır, böylecestd::cin
vestd::cout
yerine doğrudancin
vecout
kullanılabilir.
Açıklama:
#include <iostream>
:cin
vecout
gibi giriş/çıkış işlemlerini içereniostream
başlık dosyasını programa ekler.cout << "Bir sayi girin: "
: Ekrana bilgi mesajı yazar.cin >> number;
: Kullanıcının girdiği değerinumber
değişkenine atar.cout << "Girdiginiz sayi: " << number << endl;
: Kullanıcının girdiği değeri ekrana yazdırır.
Çeşitli Veri Türleri İçin Kullanıcı Girdisi
Kullanıcıdan birden fazla veri türünde giriş almak da mümkündür. Örneğin, string
, double
veya char
gibi farklı veri türlerini cin
ile okuyabilirsiniz.
getline
Kullanımı (Satır Bazlı Kullanıcı Girdisi)
getline
Kullanımı (Satır Bazlı Kullanıcı Girdisi)cin
operatörü, boşluk karakteri ( ) veya satır sonu karakteri () gördüğünde okumayı durdurur. Bu nedenle, kullanıcı tam bir satır girmek isterse getline()
fonksiyonu kullanılabilir. getline()
fonksiyonu, cin
operatörü ile kıyaslandığında, tüm satırı (boşluk dahil) okur ve bir string
değişkenine atar.
Açıklama:
getline(cin, fullName);
ifadesi,cin
nesnesinden tam satırı okuyarakfullName
değişkenine atar. Böylece, kullanıcının girdiği isim boşluk içeriyor olsa bile tüm satır okunur ve değişkene atanır.
Birden Fazla Kullanıcı Girdisi Alma
Kullanıcıdan aynı anda birden fazla girdi almak için cin
'i ardışık olarak kullanabilirsiniz:
Açıklama:
Bu örnekte cin >> x >> y;
ifadesi, kullanıcıdan arka arkaya iki giriş (sayı) alır ve x
ve y
değişkenlerine atar.
Kullanıcı Girdisi Alırken Dikkat Edilmesi Gereken Noktalar
Geçersiz Girdi: Kullanıcı beklenen veri türünde bir girdi girmezse (
int
yerinestring
gibi),cin
hata durumuna geçer ve daha fazla veri okumaz. Bu durumu düzeltmek içincin.clear()
vecin.ignore()
kullanılabilir.
Boşlukları Okuma:
cin
yalnızca ilk boşluğa kadar olan veriyi okur. Tam bir satırı almak içingetline()
kullanmak gereklidir.Kullanıcıdan Gelen Fazla Girdi: Kullanıcı beklenenden fazla giriş yaparsa,
cin
fazladan gelen verileri okumaz ve bu veriler giriş akışında kalır. Bu durumda, sonrakicin
işlemlerinde beklenmedik davranışlar görülebilir. Bu durumcin.ignore()
ile çözülebilir.
Last updated