Ответ 1
ios::out
открывает файл для записи.
ios::binary
гарантирует, что данные будут считаны или записаны без перевода новых символов строки в и от \r\n
на лету. Другими словами, именно то, что вы даете потоку, именно то, что написано.
Я пытаюсь понять разницу между открытием файла, например:
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:: двоичных элементов управления обработкой символов новой строки. В Windows они расширяются до пар CRLF. Что он - это не влияет на то, как такие вещи, как оператор < работа.