|
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 28
|
||||||
Запись структуры в файл07.11.2013, 15:10. Показов 8077. Ответов 8
Метки нет (Все метки)
Как правильно будет записать структуру данных в файл, что бы затем без проблем его можно было считать?
0
|
||||||
| 07.11.2013, 15:10 | |
|
Ответы с готовыми решениями:
8
Запись структуры в файл Запись структуры в файл |
|
651 / 404 / 76
Регистрация: 21.09.2008
Сообщений: 1,396
|
|
| 07.11.2013, 19:59 | |
|
В строке 46 что за gramata[i].Nr = i+1; ?
Компилятор ругается на Ваш пример (в строке 87 с оператором break ожидается определение или выражение).
0
|
|
|
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 28
|
|||||||
| 07.11.2013, 21:15 [ТС] | |||||||
0
|
|||||||
|
651 / 404 / 76
Регистрация: 21.09.2008
Сообщений: 1,396
|
|
| 07.11.2013, 22:08 | |
|
Даже если информация введена по одной книге, то в строке 79 выводятся информация по всем книгам (а поля-то остались с указателями на "мусор"). Для начала инициализируйте нулями в строке 15 массив структур:
} kniga[N] = {};
1
|
|
|
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 28
|
|||||||
| 10.11.2013, 00:38 [ТС] | |||||||
|
И почему без 47 строчки ( j--; ), считывает на 1 структуру больше чем нужно - отображает пустую структуру (на месте kniga[i].Nr и kniga[i].god нули, а в остальных местах пустота).
0
|
|||||||
|
651 / 404 / 76
Регистрация: 21.09.2008
Сообщений: 1,396
|
||||
| 10.11.2013, 14:10 | ||||
|
Полезная информация о fopen. Далее: у Вас структура knigi содержит описание полей Nr, god как целых чисел, поэтому файл должен быть не текстовым, а двоичным. Поэтому режим открытия файла должен быть "ab+" или "ab". fread(&kniga[j], sizeof(struct knigi), 1, fail_gr); И добавьте заголовочный файл stdbool.h, без его указания gcc ругался на булевы переменные в режиме C99. Хотите полезный совет? Научитесь использовать отладчик, встроенный в IDE (или отдельно gdb) - много вопросов можно решить быстрее и самостоятельно, чем дождаться советов гуру. ) Рекомендую отличные книги на эту тему: - Джон Роббинс "Отладка приложений для Microsoft .NET и Microsoft Windows", 2004 год; - Крис Х. Паппас, Уильям Х. Мюррей III "Отладка в C++. Руководство для разработчиков", 2001 г. Если надо их - обращайтесь в личку.
1
|
||||
|
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 28
|
|||||||||||
| 10.11.2013, 15:30 [ТС] | |||||||||||
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 28
|
|
| 11.11.2013, 14:08 [ТС] | |
|
Попробовал во всех режимах - "a", "a+", "ab", "ab+", "w", "w+", "wb", "wb+", ни в одном из них в файл целочисленные значения записываясь не видны ( kniga[i].Nr и kniga[i].god ). Подскажите, пожалуйста, в чем может быть проблема?
0
|
|
|
419 / 418 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
|
||||||
| 11.11.2013, 17:17 | ||||||
|
Вы же пишете дамп из памяти, поэтому числа идут в двоичном формате
Добавлено через 1 час 35 минут Смотрите, я переделал немного ваш код, до конца не доделал, нет времени, но идею поймете, разберитесь с файловыми операциями и режимами открытия. В таком виде логику программы проще разобрать, ну и вычислить ошибки. Кликните здесь для просмотра всего текста
1
|
||||||
| 11.11.2013, 17:17 | |
|
Помогаю со студенческими работами здесь
9
Запись из структуры в файл и обратно
Запись структуры в бинарный файл , пример Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|