BİLGİ SAYAMIYORUM beta

C++ da ekrana yazdırma yaparken “std::endl” ve “\n” kullanmanın farkı nedir?

0

C++ ile çalışırken bazı operasyonlar için kendinize bir standart belirliyorsunuz ve çoğunlukla öyle devam ediyor sanırım. Bu da bence onlardan biri, std::cout ile ekrana yazdırma işlemleri yaparken, satır sonlarını nasıl getirmelisiniz? std:endl ile mi yoksa new line anlamına gelen \n ile mi? Kesin bir cevabı yok, tercihinize bağlı.

std::cout << "Sineklerin Tanrisi" << std::endl;
std::cout << "Sineklerin Tanrisi\n";

std::endl i kullandığınızda aslında fazladan bir fonksiyon daha çağırılmış oluyor ama bu fonksiyon, sifonu (flush) çekip, akışı temizlediği için (: özellikle kullanmayı sevenler de söz konusu. Hatta aynı anlama geldiği aşağıdaki örneği de bunlara alternatif olarak kullanan var:

std::cout << "Sineklerin Tanrisi\n" << std::flush;

Hem yeni satır işlemini kaçış karakteri (\n) ile yapmış oluyor hem de sifon çekmiş oluyorsunuz. Aslında önbelleğin çalışmasında bir sıkıntı yoksa her satırda flush yapılıyordur zaten ama bu şekilde endl ya da flush kullanmak onu kesinleştiriyor sanırım.

Eğer yazdırdığınız şey normal yazıya ait değil de hata geri bildirimi ise, ön belleğe alınmayan ve her satırda sifon çeken std::cerr i kullanabilirsiniz:

std::cerr << "Budala";

BENZER 7

Kimse etkileşime girmemiş

ETİKETLER