Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

26.09.2010, 13:36

endl und \n

Hallo,

in dem Buch "C++ für Spieleprogrammierer" wird ja "endl" und "\n" für einen Zeilenumbruch benutzt. Allerdings ist mir nicht ganz klar, wann welche gewählt wird. Wenn man "endl" benutzt, wird ja noch irgendetwas "geflusht" (?), was mir das bzw. dem Programm bringt, ist mir auch nicht klar.
Danke im Voraus!


Gruß,
Rschk

2

26.09.2010, 13:39

nehm im Zweifelsfall endl, \n bewirkt auf manchen Platformen nicht das gewünschte Ergebniss, soweit ich mich entsinne.

Oberon

Treue Seele

Beiträge: 181

Wohnort: Österreich

Beruf: Student

  • Private Nachricht senden

3

26.09.2010, 13:48

\n bewirkt auf allen Plattformen einen Zeilenumbruch, z.B. wird es bei Windows automatisch durch \r\n ersetzt (deshalb gibt es bei Dateien auch ios::binary
Zu endl: http://www.cplusplus.com/reference/iostr…ipulators/endl/

4

26.09.2010, 13:50

jo, endl ist \n + flush

http://www.cplusplus.com/reference/iostr…ipulators/endl/
http://www.cplusplus.com/reference/iostr…pulators/flush/

Nach einem endl erscheint der Text also direkt am Bildschirm oder wird direkt in die Datei geschrieben (oder wofür auch imemr der Stream gerade ist) ansonsten passiert das halt relativ schnell danach, mir ist da noch nie eine Verzögerung aufgefallen. Das heißt aber auch, dass endl theoretisch langsamer ist, weil ständig geflusht werden muss.

Und naja, auf Plattformen auf denen \n nicht funktioniert muss man erstmal wohl kaum rücksicht nehmen, denn wer wird sein Programm jemals auf so ner Plattform laufen lassen? Außerdem steht ja in der Referenz, dass enld einfach ein NewlineCharacter einsetzt und der wird wohl meistens einfach nur \n sein.

Letztendlich ist es also ziemlich egal, was du benutzt, ich nehme meist endl, weils irgendwie schöner aussieht.
Lieber dumm fragen, als dumm bleiben!

5

26.09.2010, 14:59

Vielen Dank!

Werbeanzeige