Aslında C++ ile uğraştığım söylenemez :-D Ama bir forumda benim de işin içinden çıkamadığım bir soru geldi.
Örneğin şu ikisinin aynı olduğunu biliyoruz.
cout << "birseyler" << endl;
cout << "birseyler" << '\n' << flush;
Hatta C++ FAQ Lite'de:
[15.7] Should I end my output lines with std::endl or '\n'? (http://www.parashift.com/c++-faq-lite/input-output.html#faq-15.7)
çoğu durumda performans açısından 'endl' yerine '\n' kullanılması tavsiye ediliyor.
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream cikisAkimi("alfabe.txt", ios::out);
for (char harf = 'A'; harf <= 'Z'; ++harf) {
cikisAkimi << harf << endl;
}
return 0;
}
Örneğin yukarıdaki programda gereksiz yere 26 kere 'std::flush' çağrılıyor. Ama '\n' kullansaydık sadece bir kere program sonlandırılırken çıkış akımının belleği ekrana yazılacaktı.
Benim merak ettiğim her 'flush' ile beraber 26 kere dosya da açılırmı? Ayrıca 'endl' ve '\n' in performans olarak karşılaştırmasını gösteren gerçek bir örnek nasıl yazabiliriz? Eğer ciddi olarak bir performans farkı varsa.
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]