Я пытаюсь выяснить различие между открытием файла как:
fstream *fileName*("FILE.dat",ios::binary);
или
fstream *fileName*("FILE.dat",ios::out);
или
fstream *fileName*("FILE.dat",ios::binary | ios::out);
Я нашел, что все эти формы идентичны: во всех случаях тот же вывод на файле производится с помощью также *fileName*<<
или *fileName*.write()
.
ios :: out
открывает файл для записи.
ios :: binary
обеспечивает чтение или запись данных без перевода символов новой строки в и из \ r \ n
на лету. Другими словами, именно то, что вы даете потоку, - это именно то, что написано.
Открытие файла с помощью ios :: binary контролирует, как обрабатываются символы новой строки. В Windows они расширяются до пар CRLF. Вот и все - это не влияет на работу таких вещей, как operator <<.