Taslak bir C ++ 17 standart belgesinden:
30.4.3 Dar akış nesneleri [dar.stream.objects]
istream cin;
1 cinNesne stdin, <cstdio>(30.11.1) 'de açıklanan nesne ile ilişkili bir akış arabelleğinden gelen girdiyi kontrol eder .
2 Nesne cinbaşlatıldıktan sonra cin.tie()geri döner &cout. Aksi takdirde durumu basic_ios<char>::init(30.5.5.2) için gerekli olanla aynıdır .
ostream cout;
3 coutNesne stdout, <cstdio>(30.11.1) 'de açıklanan nesne ile ilişkili bir akış arabelleğine çıktıyı kontrol eder .
ostream cerr;
4 cerrNesne stderr, <cstdio>(30.11.1) 'de açıklanan nesne ile ilişkili bir akış arabelleğine çıktıyı kontrol eder .
5 Nesne cerrbaşlatıldıktan sonra cerr.flags() & unitbufsıfırdan farklıdır ve cerr.tie()geri döner &cout. Aksi takdirde durumu basic_ios<char>::init(30.5.5.2) için gerekli olanla aynıdır .
ostream clog;
6 clogNesne stderr, <cstdio>(30.11.1) 'de açıklanan nesneyle ilişkili bir akış arabelleğine çıktıyı kontrol eder .
Tartışma...
coutyazıyor stdout; cerrve cloghiçstderr
Standart Çıkış ( stdout), programdan, son kullanıcıya gösterilebilen veya başka bir işleme aşamasına aktarılabilen başarılı işlemden elde edilen çıktı gibi hatasız, tanısal olmayan çıktı almayı amaçlamaktadır.
Standart Hata ( stderr), programın kullanıcının bekleyebileceği çıktıyı üretmediğini veya üretmediğini belirten uyarı ve hata mesajları gibi tanılama çıktıları için tasarlanmıştır. Bu girdi, çıktı verileri başka bir işlem aşamasına aktarılsa bile son kullanıcıya görüntülenebilir.
cinve cerrbağlıcout
Her ikisi de coutG / Ç işlemlerini kendileri yapmadan önce yıkar . Bu, gönderilen komutların coutprogram bloklarından önce okunmasını sağlar cinve önceki çıktının, coutbir hata yazılmadan önce yıkanmasını cerrsağlar; vb..
Bu, clog- eğer orada yazarsanız, arabelleğe alınmaz ve hiçbir şeye bağlı değildir, bu nedenle, temizlemeden önce makul büyüklükteki günlükleri arabelleğe alacaktır. Bu, mesajların en yüksek verimini verir, ancak mesajların, uçbirimi okuyan veya günlüğü takip eden bir tüketici tarafından hızlı bir şekilde görülemeyebileceği anlamına gelir.
stdout,stdin(içincin) vestderrvarsayılan olarak kullandığı , bilgisayar tarafından tanınan bir akışı vardır . Sanırımclogsadececerrgeçici bir değişiklikle.