C++ Academy · Ders

std::cerr ve std::clog ile Çalışma

cerr ve clog akışlarını kullanarak tanılama ile günlükleri program çıktısından ayırın

4. ders / 413 adım

std::cerr ve std::clog ile Çalışma, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C++ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C++ Academy kursu toplamda 4 dersten oluşur.

Üç Çıktı Akışı

Standart kitaplık, önceden tanımlanmış üç çıktı akışı sunar:

  • std::cout — arabellekli standart çıktı
  • std::cerr — arabelleksiz standart hata
  • std::clog — arabellekli standart hata

std::cerr: Hatalar ve Uyarılar

std::cerr, standart hata akışına yazar ve tamponsuzdur — program hemen ardından çökse bile çıktı anında görünür.

std::cerr << "Error: file not found\n";

std::clog: Tamponlu Günlük Kayıtları

std::clog de standart hata akışına yazar ancak cout gibi tamponludur. Hafif bir gecikmenin sorun olmadığı rutin günlük kayıtları için kullanın.

std::clog << "[info] processing record 42\n";

Standart Hata İçin Neden İki Akış Var?

Hataların hemen görünmesi gerekir; böylece kullanıcı onları çökmeden önce görür. Günlük kayıtları yüksek hacimlidir — onları tamponlamak performansı kabul edilebilir düzeyde tutar.

Çıktıyı Yönlendirme

Komut satırında standart çıktı ve standart hata ayrı kanallara gider. Bunları birbirinden bağımsız yönlendirin.

# Send stdout to a file, stderr to the terminal
./app > out.txt

# Send stderr to a file too
./app 2> err.txt

# Send both to one file
./app > all.txt 2>&1

Tanılama ve Veri Çıktısı

Geleneksel olarak makinelerce okunabilir veriler standart çıktıya, insanlara yönelik tanılama bilgileri ise standart hataya gider. Bu, işlem hatlarının düzgün çalışmasını sağlar.

Akışları Birbirine Bağlama

cin, varsayılan olarak cout'a bağlıdır — cin'den okumak önce cout'u boşaltır. cerr de benzer şekilde cout'a bağlıdır.

Düzeylerle Özel Günlük Kaydı

Günlük düzeyleri için clog'u yardımcı işlevlerle sarın — INFO, WARN, ERROR. Bu, günlük iletilerini tutarlı tutar.

void warn(const std::string& msg) {
    std::clog << "[WARN] " << msg << "\n";
}

void error(const std::string& msg) {
    std::cerr << "[ERROR] " << msg << "\n";
}

Performans: cerr Yavaştır

cerr her işlemde tamponu boşalttığından, yinelenen yazma işlemleri yavaştır. Yoğun günlük kaydı için clog veya özel bir günlük kaydı kitaplığını tercih edin.

clog'u Elle Boşaltma

Hata ayıklama sırasında clog çıktısının hemen görünmesini istiyorsanız onu elle boşaltın.

std::clog << "checkpoint" << std::flush;

Dosya Akışına Yazma

Aynı örüntüler dosya akışlarıyla da çalışır. std::ofstream ile bir günlük dosyası açın ve clog'da olduğu gibi içine yazın.

std::ofstream logFile("app.log");
logFile << "Application started\n";

Hızlı Kontrol

Her yazma işleminden sonra otomatik olarak boşaltılan standart akış hangisidir?

Özet

Normal çıktı için std::cout, acil ve tamponsuz hatalar için std::cerr, tamponlu günlük kayıtları için std::clog kullanın. Kabukta bunları > ve 2> ile birbirinden bağımsız yönlendirin.

Başlamak ücretsiz

Yapay zeka eğitmeniyle C++ öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
51
Dersler
203

Sıkça Sorulan Sorular

“std::cerr ve std::clog ile Çalışma” dersi ücretsiz mi?

Evet — “std::cerr ve std::clog ile Çalışma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C++ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C++ Academy kursu toplamda 4 dersten oluşur.

“std::cerr ve std::clog ile Çalışma” dersinde ne öğreneceğim?

cerr ve clog akışlarını kullanarak tanılama ile günlükleri program çıktısından ayırın C++ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C++ Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C++ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“std::cerr ve std::clog ile Çalışma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C++ Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C++ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. std::cin ve std::cout'u Doğru Kullanma
  2. Çıktıyı iomanip ile Biçimlendirme
  3. getline ile Girdiyi Güvenle Okuma
  4. std::cerr ve std::clog ile Çalışma
← C++ Academy Sayfasına Dön