Почему делает C++ ofstream запись (), метод изменяет мои необработанные данные?

Попробуйте это.

public static IEnumerable<Person> SmartCombine(IEnumerable<Person> fallback, IEnumerable<Person> translated) {
  return translated.Concat(fallback.Where(p => !translated.Any(x => x.id.equals(p.id)));
}
6
задан Graphics Noob 29 August 2009 в 02:19
поделиться

4 ответа

Установите двоичный режим при открытии файла:

http://www.cplusplus.com/reference/iostream/ofstream/ofstream/

9
ответ дан 8 December 2019 в 05:56
поделиться

Поскольку вы не открываете файл в двоичном режиме, по умолчанию он настроен на форматированный вывод. При форматированном выводе ваша реализация выполняет преобразование символов конца строки, как вы описали.

1
ответ дан 8 December 2019 в 05:56
поделиться

Вы должны установить режим файла на двоичный , когда вы открываете it:

std::ofstream file;
file.open("filename.jpg", std::ios_base::out | std::ios_base::binary);

Таким образом, поток не пытается подстроить символы новой строки под ваш собственный текст формат.

9
ответ дан 8 December 2019 в 05:56
поделиться

Попробуйте открыть входящий поток как двоичный. Что-то вроде этого должно работать:

ofstream ofs;
ofs.open(filename, ios::out | ios::binary);
ofs.write(buffer, bufferLen);
ofs.close();
5
ответ дан 8 December 2019 в 05:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: