C++ Temel Giriş/Çıkış: Cout, Cin, Cerr Örneği
Akışlar neler içerir? C++?
C++ kullanıcılara giriş/çıkış görevlerini gerçekleştirmek için kullanabilecekleri bir dizi kitaplık sağlar. Bu görevler, popüler olarak akışlar olarak adlandırılan bayt dizileri biçiminde gerçekleştirilir.
Akımlar ikiye ayrılır:
Akış türleri
- Giriş Akışı: Bu, baytların klavye gibi bir cihazdan ana belleğe aktığı bir akış türüdür.
- Çıkış Akışı: Bu, baytların ters yönde, yani ana bellekten görüntü ekranı gibi cihaza aktığı bir akış türüdür.
Akışlar nasıl çalışır?
C++ akışlar şu şekilde çalışır:
- İlk olarak, doğru türde bir akış başlatılır.
- Daha sonra, nerede olduğunu belirtmelisiniz. I / O get/put işaretçileri kullanılarak gerçekleşecektir.
- Bir akışta doğru konuma ulaştıktan sonra sırasıyla >> ve << operatörlerini kullanarak giriş ve çıkış görevlerini gerçekleştirebilirsiniz.
İşlev Tablosu
stream.h başlık dosyasında sağlanan işlevler şunlardır:
Sınıf | fonksiyonlar |
---|---|
Filebuf | Dosya tamponlarını okuma/yazma için ayarlar. İçinde close() ve open() fonksiyonları vardır |
fstreambase | ifstream, fstream ve ofstream sınıfları için temel sınıftır. İşlemleri dosya akışlarında ortaktır. |
ifstream | Giriş işlemlerini sağlamak için bir giriş dosyası akış sınıfıdır. |
akış | Çıktı işlemlerini sağlamaya yönelik bir çıktı dosyası akış sınıfıdır. |
f akışı | Giriş/Çıkış akışı sınıfıdır. Eş zamanlı giriş/çıkış işlemlerini destekler. |
C++ Giriş/Çıkış için başlık dosyaları
C++ temel giriş/çıkış görevlerini gerçekleştirmek için işlevlerle birlikte gelen üç kitaplık sağlar. Bunlar şunları içerir:
- Io akışı: Standart giriş/çıkış akışının kısaltmasıdır. Bu başlık dosyası, cin/cout/cerr gibi nesnelerin tanımlarıyla birlikte gelir.
- Ne demek istiyorsun? Giriş/çıkış manipülatörlerinin kısaltmasıdır. Kitaplık, akışların işlenmesi için kullanılabilecek işlevlerle birlikte gelir. Setw, setprecision ve diğerleri gibi nesnelerin tanımlarını içerir.
- F akışı: Bu, dosya akışını açıklamaya yönelik bir başlık dosyasıdır. Dosyadan okunan verileri girdi olarak veya dosyaya yazılan verileri çıktı olarak işler.
Cin ve cout anahtar kelimeleri şu ülkelerde çok popülerdir: C++. Sırasıyla giriş almak ve çıktıları yazdırmak için kullanılırlar. Bunları kullanmak için programınıza iostream başlık dosyasını eklemelisiniz. Sebebi ise o başlık dosyasında tanımlanmış olmalarıdır. iostream başlık dosyasının eklenmemesi bir hata oluşturacaktır. Bu, kurumun başarısızlığından kaynaklanmaktadır. C++ anahtar kelimelerin anlamını anlamak için derleyici.
iostream başlık dosyasında tanımlanan başlıca nesneler cin, cout, cerr ve clog'dur. Bunları tartışalım.
standart::cout
cout nesnesi iostream sınıfının bir örneğidir. Normalde ekran olan standart bir çıktı cihazında çıktı üretmek için kullanılır. Akış ekleme operatörü (<<) ile birlikte kullanılır.
Örnek E-posta
#include <iostream> using namespace std; int main() { char welcome[] = "Welcome to Guru99"; cout << welcome << endl; return 0; }
Çıktı:
İşte kodun ekran görüntüsü:
Kod Açıklaması:
- Cout nesnesinin tanımlandığı yere iostream başlık dosyasını ekleyin.
- Sınıflarını kullanırken onu çağırmak zorunda kalmamamız için std ad alanını ekleyin.
- main() fonksiyonunu çağırın. Program kodu kendi gövdesine eklenmelidir. Açılan küme ayracı {, gövdesinin başlangıcını işaret eder.
- Guru99'a Hoş Geldiniz dizesini tutacak hoş geldiniz adında bir karakter değişkeni oluşturun.
- Hoş geldin dizesinin değerini konsola yazdırın. Sonu bir C++ bitiş çizgisi anlamına gelen anahtar kelime. Bir sonraki satıra metin yazdırmaya başlamak için imleci hareket ettirir.
- Program başarılı bir şekilde yürütüldüğünde değeri döndürmelidir.
- main() fonksiyonunun gövdesinin sonu.
std::cin
cin nesnesi istream sınıfının bir örneğidir. Giriş aygıtı olan klavyeden gelen girişi okur. Normalde çıkarma operatörüyle (>>) birlikte kullanılır. Çıkarma nesnesi, klavye aracılığıyla girilen verilerin cin nesnesinden çıkarılmasından sorumludur.
Örnek E-posta
Aşağıdaki örnek, cin anahtar sözcüğünün nasıl kullanılacağını göstermektedir C++:
#include <iostream> using namespace std; int main() { int number; cout << "Enter a number:"; cin >> number; cout << "\nYou entered: " << number; return 0; }
Çıktı:
İşte kodun ekran görüntüsü:
Kod Açıklaması:
- iostream başlık dosyasını programımıza ekleyin. Cin nesnesi bu başlık dosyasında tanımlanır.
- Sınıflarını kullanmak için std ad alanını ekleyin. Sınıflarını kullanırken std'yi çağırmanıza gerek kalmayacak.
- main() fonksiyonunu çağırın. Program kodu kendi gövdesine eklenmelidir.
- Programın gövdesinin başlangıcı.
- Beyan et tamsayı değişkeni numarayı adlandırdı.
- Kullanıcının bir sayı girmesini isteyen ekrana bir mesaj yazdırın.
- Kullanıcının konsola girdiği değeri klavyeden okuyun.
- Yukarıda okunan değeri diğer metinle birlikte konsola yazdırın.
- Program başarılı bir şekilde yürütülürse bir değer döndürmelidir.
- Ana işlevin gövdesinin sonu.
std::cerr
Cerr nesnesi, hataların çıktısını almak için standart hata akışını oluşturur. C++. Cerr, ostream sınıfının bir örneğidir. cerr nesnesi arabelleğe alınmamıştır. Bu, bir hata mesajının hemen görüntülenmesi gerektiğinde kullanıldığı anlamına gelir.
Arabelleklenmemiş olduğundan, daha sonraki bir görüntüleme için hata mesajını depolamaz. Akış ekleme operatörü (<<) ile birlikte kullanılır.
Örnek E-posta
#include <iostream> using namespace std; int main() { cerr << "An Error occurred!"; return 0; }
Çıktı:
İşte kodun ekran görüntüsü:
Kod Açıklaması:
- Cerr nesnesinin tanımlandığı yere iostream başlık dosyasını ekleyin.
- Sınıflarını kullanırken onu çağırmak zorunda kalmamamız için std ad alanını ekleyin.
- main() fonksiyonunu çağırın. Program mantığı kendi bünyesinde eklenmelidir. Açılan küme ayracı, işlevin gövdesinin başlangıcını işaret eder.
- Konsola bir hata yazdırmak için cerr nesnesini kullanın.
- Program başarılı bir şekilde yürütüldüğünde bir değer döndürmelidir.
- Ana işlevin gövdesinin sonu.
std::tıkanıklık
clog nesnesi ostream sınıfının bir örneğidir. Standart ekran olan monitörde hataları göstermek için kullanılır. cerr nesnesine benzer, ancak arabelleğe alınmıştır. Arabelleğe alınmış olduğundan, arabellek doldurulana/temizlenene kadar hata mesajını arabellekte depolar. Akış ekleme operatörü (<<) ile birlikte kullanılır.
Örnek E-posta
#include <iostream> using namespace std; int main() { clog << "An Error occurred!"; return 0; }
Çıktı:
İşte kodun ekran görüntüsü:
Kod Açıklaması:
- Takunya nesnesinin tanımlandığı iostream başlık dosyasını içerir.
- Sınıflarını çağırmadan kullanabilmemiz için std ad alanını dahil ediyoruz.
- main() fonksiyonunun çağrılması. Program mantığı kendi bünyesinde eklenmelidir. { işlevin gövdesinin başlangıcını işaret eder.
- Standart çıktı olan monitöre bir hata yazdırmak için clog nesnesini kullanın.
- Program başarılı bir şekilde tamamlandığında bir değer döndürmelidir.
- main() fonksiyonunun gövdesinin sonu.
GÇ akışlarında hata işleme
Bir akışın geçerli olup olmadığını kontrol etmek için onu Boolean olarak kullanabilirsiniz.
İşte bir örnek:
ifstream file( "myfile.txt" ); if ( ! file ) { cout << "File NOT opened!" << endl; }
Akış durumu hakkında daha fazla ayrıntı almak için şu işlevleri kullanabilirsiniz:
- good()- her şey yolundaysa true değerini döndürür.
- bad()- önemli bir hata meydana gelirse true değerini döndürür.
- fail()- başarısız akış işleminden sonra true değerini döndürür.
- eof()- bir dosyanın sonuna ulaşırsa true değerini döndürür.
Belirli bir okuma/yazma işleminin başarısız olup olmadığını öğrenmek için okuma sonucunu test edin.
Örneğin, kullanıcının geçerli bir tamsayı girip girmediğini kontrol etmek için şunu yapın:
int p; if ( cin >> p ) { cout << "Enter valid number" << endl; }
ÖZET
- Giriş ve çıkış görevleri C++ bayt dizisi aracılığıyla yapılır. Baytlara akış denir.
- Bir giriş akışında baytlar, giriş cihazından bir klavye gibi ana belleğe akar.
- Bir çıkış akışında baytlar ana bellekten monitör gibi bir çıkış cihazına gönderilir.
- cin nesnesi istream sınıfının bir örneğidir. Klavye gibi bir giriş cihazından gelen girişi okur.
- cout nesnesi ostream sınıfının bir örneğidir. Monitör gibi çıkış aygıtlarında çıktı üretir.
- Cerr nesnesi ostream sınıfının bir örneğidir. Monitörde hata nesnelerini görüntüler.
- clog nesnesi ostream sınıfının örneğidir. Çıkış cihazlarındaki hata mesajlarını görüntüler.
- Clog nesnesi hata mesajlarını tamponlarken, cerr nesnesi bunu yapmaz.