![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 20.10.2019
Сообщений: 9
|
![]()
Здравствуйте. Есть отдельные куски кода,но не могу собрать в цельный рабочий код.Помогите,пожалуйста.
Задание: В бинарном файле хранится информация о столах. Каждая запись файла состоит из следующих полей : Название модели : 10 байт; Ширина стола : 2 байта; Длина стола : 2 байта; Цвет : 12 байт; Цена : 4 байта. Написать функции для работы с таким файлом, как с файлом прямого доступа, т е считать запись с определенным номером и записать запись с определенным номером. Код: ОБЬЯВЛЕНИЕ СТРУКТУРЫ: #pragma pack(push, 1) struct CTable { char m_name[10]; uint16_t m_witdth; uint16_t m_length; char m_color[12]; uint32_t m_price; }; #pragma pack(pop) ФУНКЦИЯ ЧТЕНИЯ: bool ReadTable(std::istream &in, size_t n, CTable &table) { if (!in.seekg(n * sizeof(CTable))) return false; return in.read((char *)&table, sizeof(table)).good(); } ОТКРЫТИЕ ФАЙЛА И ЧТЕНИЕ: std::ifstream in("tables.bin", std::ios::binary); CTable table; ReadTable(in, 3, table); std::cout << std::string(table.m_name, sizeof(table.m_name)) << std::endl; ReadTable(in, 2, table); std::cout << std::string(table.m_name, sizeof(table.m_name)) << std::endl; ReadTable(in, 1, table); std::cout << std::string(table.m_name, sizeof(table.m_name)) << std::endl; |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,830
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Бинарные файлы с++ | Lehhah | Помощь студентам | 1 | 15.05.2019 16:20 |
бинарные файлы | карабах | Помощь студентам | 1 | 28.03.2018 16:09 |
СИ++ Бинарные файлы | JLady | Помощь студентам | 0 | 05.05.2015 19:51 |
Бинарные файлы (запись/чтения больше одной записи) | JoberLord | Общие вопросы C/C++ | 4 | 27.08.2012 18:49 |
Бинарные файлы | VorobeY1326 | Общие вопросы C/C++ | 12 | 09.05.2009 21:00 |