18 / 18 / 15
Регистрация: 19.03.2018
Сообщений: 49
|
||||||
1 | ||||||
Двоичная запись в файл с wofstream09.03.2019, 17:53. Показов 1358. Ответов 7
Метки нет (Все метки)
Всем доброго времени.
Столкнулся с проблемой, при которой не удается записать массив байт типа wchar_t в двоичный файл, но при этом, нормально записываются целые числа. Над проблемой безуспешно бьюсь уже третий день, гугл предлагает imbue для установки другой локали, но беда в том, что массив байт совсем не записывается в файл, поэтому установка локали также не дает видимого результата. У меня уже давно закончились любые предположения по этому поводу, поэтому я надеюсь на вашу помощь. Весь исходный код касательно темы: (также я вывел его в отдельную демку, чтобы было нагляднее - см. прикрепления) Кликните здесь для просмотра всего текста
0
|
09.03.2019, 17:53 | |
Ответы с готовыми решениями:
7
Запись и чтение файла wofstream Двоичная запись Двоичная запись Функция ( натуральное число, двоичная запись) |
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
|
||||||
10.03.2019, 01:37 | 2 | |||||
Массив байт - это массив char. Отсюда: хочешь записывать сырые байты в файл - используй потоки для char.
Добавлено через 35 минут
0
|
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
|
||||||
10.03.2019, 18:05 | 6 | |||||
???
Добавлено через 1 час 20 минут Так же, как и записывал: с помощью потоков для бинарного чтения char.
0
|
18 / 18 / 15
Регистрация: 19.03.2018
Сообщений: 49
|
|
10.03.2019, 18:55 [ТС] | 7 |
"Чем" - некорректный вопрос, потому что в файл записывается структура данных, которую удобно и проще записывать и хранить именно в двоичном файле.
Программа использует широкие символы, char не используется вообще, поэтому использование ofstream и ifstream неоправданно, и если верить документации, использование их для типа wchar_t, грозит потерей данных в некоторых случаях, что совершенно недопустимо.
0
|
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
|
|
10.03.2019, 22:25 | 8 |
Сообщение было отмечено Xo66um как решение
Решение
Чушь. Потокам для бинарной записи/чтения char без разницы какие типы данных записывать/читать, потому что всегда записываются/читаются байты, а вот использовать, для бинарной записи/чтения, потоки для широких символов - плохая идея, приводящая к проблемам, которые ты и имеешь.
0
|
10.03.2019, 22:25 | |
10.03.2019, 22:25 | |
Помогаю со студенческими работами здесь
8
Двоичная запись целого числа (Н<9),используя кейс оф ! Количество нечетных чисел, двоичная запись которых имеет 21 цифру. Определить, является ли периодической последовательностью двоичная запись заданного натурального числа Найти простые числа, двоичная запись которых представляет собой палиндром Напечатать все числа, не превосходящие n, двоичная запись которых является симметричной последовательностью Найти минимальный элемент, двоичная запись которого заканчивается не более чем двумя нулями Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |