ostream und \n



  • hallo,
    wer ist eigentlich dafuer verantwortlich, dass \n zu einem return und \t zu einem tab wird? Implementieren die ostreams dieses Verhalten? Da konnte ich naemlich nichts finden. Ein stream ist fuer mich ein mehr oder weniger abstraktes Objekt, welches keine Zeilenbreite o.ae. hat, daher ist ein return ja schlecht umsetzbar.
    Oder wird das gar erst vom os letztlich zu einem return resp. tab umgesetzt und der ostream leitet es nur bis dahin weiter (die c++ lib hat also garnichts damit zu tun)?

    Fragen ueber Fragen. Waere nett wenn jemand etwas Licht ins Dunkel bringen wuerde.



  • Wenn du dir mal eine Textdatei in einem Hexeditor anschaust dann wirst du ganz schnell die binär werte 0x0a und 0x0d finden. Welche in einem String in C++ als \n oder als \r dargestellt werden.

    Das sind sogenannte whitespaces welche von einem normalen program nie 'offensichtlich' angezeigt werden. Nur eben durch den abstand bei einem \t (tabulator) oder einer neuen zeile.



  • Schon klar. Okay ich habe mich nicht ganz deutlich ausgedrueckt. Ich beziehe mich auf die Standard-Objekte cout und cerr, welche auf die Console umgeleitet werden. Also wo geschieht auf dem Weg cout -> Ausgabe auf Console die Umwandlung von \t in 4 Spaces oder sowas?



  • Das macht das OS bei cout



  • Okay, danke.


Log in to reply