WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   C++ "\n" vs. endl; (http://www.wcm.at/forum/showthread.php?t=207112)

tivise 05.01.2007 10:11

C++ "\n" vs. endl;
 
Hallo. Ich wurde gefragt was den jetzt der genaue Unterschied zwischen "\n" und endl; in einer C++ Funktion ist. Ich wusste es schon mal aber das ist sooo unwichtig das man das schon mal vergisst. Vielleicht wisst ihr das ja....


danke

pong 05.01.2007 10:23

Wenn ich mich recht erinnere:

endl gibt dir wie \n ein CRLF nur ersparst dir halt einen Textstring extra deswegen zu beginnen... und ob \n eigentlich CPP Konform ist... ich vermute mal, Nein

pong

delphirocks 05.01.2007 14:33

F12 auf endl bringt mich im VS2003 auf folgendes nettes Konstrukt:

Code:

template<class _Elem, class _Traits> inline
        basic_ostream<_Elem, _Traits>&
                __cdecl endl(basic_ostream<_Elem, _Traits>& _Ostr)
        {        // insert newline and flush stream
        _Ostr.put(_Ostr.widen('\n'));
        _Ostr.flush();
        return (_Ostr);
        }

Also in den generischen Outstream wird das \n geschrieben, und anschließend der Stream "geflushed". Wofür immer das auch gut sein soll (wahrscheinlich wird bei endl immer sichergestellt, daß der Stream dann auch wirklich physikalisch auf die Disk. D.h. wenn dir nach dem endl der Rechner abstürzt, kannst du sicher sein, daß die Zeile vorhanden ist).
Wenn du's genau wissen willst, müßtest du dir "basic_ostream" Klasse mal genauer ansehen.

tivise 09.01.2007 05:03

Genau....das war´s

Danke!


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag