|
alextram
|
|
Глючит fwrite (пишет 5 байт вместо 4)26.03.2011, 11:49. Показов 2977. Ответов 4
Метки нет (Все метки)
Среда: C++ Builder 2010.
В некий файл пишутся всякие бинарные данные (типы char/int/long) при помощи fwrite. Казалось бы, задача проще некуда. Много раз выполяется команда: fwrite(&x, 4, 1, f); x — типа unsigned long, в ней в момент глюка содержится значение 0xC000000A. Казалось бы, в файле должны оказаться байты: 0x0A 0x00 0x00 0xC0. Но в реальности перед ними откуда-то берётся пятый байт, 0x0D (т. е. 13 — мистика, блин!) До и после этого fwrite стоят fflush(f), так что проблема чётко в данной строке. При этом все остальные данные (в том числе тот же самый 0xC000000A) и до и после глючащей позиции с помощью той же самой команды записываются нормально. Единственное, на что тут могу грешить — где-то раньше до этого была произведена запись в недопустимую область памяти. Но всё равно проявление этого весьма странное. Может, дело в чём-то другом? Бьюсь третий день. Добавлено через 14 часов 31 минуту Переделал вывод под ofstream — работает как часы. Крайне странная история. Вообще, какой способ работы с файлами предпочтительнее в Windows? Ибо выбор большой. |
|
| 26.03.2011, 11:49 | |
|
Ответы с готовыми решениями:
4
Считываю с потока файл пакетами -> сохраняю файл. что использовать на Qt вместо fwrite?
Asus S301L вместо з пишет * |
|
|
||
| 26.03.2011, 12:39 | ||
|
0
|
||
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
| 26.03.2011, 16:50 | |
|
Замена кода 0x0A на два кода - 0x0D 0x0A происходит в текстовом режиме работы с файлом
Поэтому косяк где-то есть, но у тебя ![]() А вообще приводи минимальную рабочую программу, которая демонстрирует глюк
3
|
|
|
|
|||||||
| 26.03.2011, 17:00 | |||||||
Совсем забыл про такую особенность винды. На коротком примере оно действительно проявляется
2
|
|||||||
|
51 / 37 / 14
Регистрация: 05.08.2016
Сообщений: 187
|
|
| 20.05.2019, 23:09 | |
|
odip, Спасибо тебе добрый человек!!!! Я уже почти поверил. 10 раз все перепроверил. Прошелся пошагово все четко передает откуда 0x0d. Пишу простенькую реализация сжатия RLE для BMP и последующего вывода микроконтроллером на LCD дисплей. Просто добавлялись биты и вся картинка уезжала.
0
|
|
| 20.05.2019, 23:09 | |
|
Помогаю со студенческими работами здесь
5
Записывает 256 байт вместо 240! В адресной строке вместо localhost пишет [::1]
Вместо открытия браузера программа пишет букву Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|