Die Ausgabe von '\ n' oder die Verwendung von endl ergibt genau den gleichen Inhalt (der einzige Unterschied ist, dass endl ebenfalls geleert wird). Wenn dieses \ n Zeichen geschrieben wird und die Datei sich im "Textmodus" befindet, konvertiert sie die Laufzeitbibliothek in den nativen Mechanismus der Plattform, um Zeilen anzugeben. Unter Unix ist dies unnötig, da dieser Mechanismus ein \ n Byte ist. Unter Windows wird das \ n \ (Wagenrücklauf, Zeilenvorschub). Ich vermute, Sie wissen das alles, aber ich überprüfe es nur für den Fall.
Kurz gesagt, solange Ihre Laufzeitbibliothek für Windows eingerichtet ist, wird der Code, den Sie haben, wie erwartet funktionieren. Ich vermute, dass Sie cygwin g ++ oder einen anderen g ++ -Port verwenden, der nicht für Windows-Linien eingerichtet ist, auch nicht im Textmodus. Einige Editoren werden das nicht übersetzte \ n nicht richtig interpretieren.
Bitte poste ein minimales, kompilierbares Programm, das ich in meinen Editor einfügen und versuchen kann. (Stellen Sie auch Compiler- und Compiler-Version bereit.) – sbi
@sbi - cygwin g ++ 3.4.4 – starcorn