0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 10
|
|||||||||||
1 | |||||||||||
Создать файл, в который можно добавлять, редактировать и удалять элементы структуры10.03.2014, 20:24. Показов 4433. Ответов 8
Метки нет (Все метки)
По заданию нужно создать файл, в который можно добавлять, редактировать и удалять элементы структуры. Пока нахожусь на стадии: как добавить еще структуру в бинарный файл после добавления первой структуры. Написал такой код:
0
|
10.03.2014, 20:24 | |
Ответы с готовыми решениями:
8
Написать класс, в котором можно удалять, добавлять и редактировать данные Технология OLE: не получается добавлять/редактировать/удалять записи в таблице Access Создание базы данных "Студент": как добавлять, удалять и редактировать записи Создать массив в который можно будет добавлять случайные числа и забирать их из него |
0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 10
|
||||||
12.03.2014, 17:20 [ТС] | 2 | |||||
Разобрался сам с этой задачей. Тем, кто столкнется с этой проблемой, смещать указатель нужно на количество бит, а не на позицию. Например:
0
|
0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 10
|
||||||
15.03.2014, 12:16 [ТС] | 4 | |||||
Да, согласен, побайтовое смещение... Невнимательно смотрел.
Добавлено через 10 минут Сейчас закончил программу, но возникла неожиданная ситуация. Если добавить всего-лишь одну структуру, затем вбить с клавиатуры строчку, эквивалентную вбитой в структуру, а, затем, проверить их на равенство, он выдаст, что они не равны... При этом, если в файле будет более, чем одна структура, в которой будут поля с одинаковыми именами, и это имя вбить с клавиатуры, то, получится, что он определит равенство... Вот код:
P.S. При использовании типа string программа вылетает с ошибкой.
0
|
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
15.03.2014, 12:53 | 5 |
Сообщение было отмечено Kralizets как решение
Решение
strign не подходит для бинарных методов работы с файлом.
Тут непонятно, что неправильно. Добавлено через 5 минут Принудительное приведение к типу указатель на char, передача по указателю (передаётся адрес переменной). Добавлено через 9 минут До конца не разбирался с добавлением новых структур, но что-то вы там моного файлов создаёте. Есть же режим открытия файла для чтения и записи (файл должен существовать, чтение из любого места, запись в любое место).
1
|
0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 10
|
|
15.03.2014, 12:59 [ТС] | 6 |
Благодарю за ответ. По поводу ошибки, попробую ее объяснить по-другому.
Есть структура. В ней 4 поля. Два чара и два инт. Добавляю структуру: Test User 256 16 Теперь пробую выполнить задание, вбиваю с клавиатуры user в другую переменную, сравниваю функцией strcoll, но она пишет, что это разные! строки. добавляю еще одну структуру, например, такую: file user 256 7 ... и еще несколько, где вместо user будет какое-то другое имя. Снова вбиваю с клавиатуры в переменную char user и ищу наибольшее значение по 3 полю. Теперь он показывает, что эти строки эквиваленты. Вот в этом и проблема...
0
|
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||||
15.03.2014, 13:04 | 7 | |||||
В zad() интересное:
Добавлено через 2 минуты Покажите, как это в коде выглядит.
1
|
0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 10
|
|||||||||||
15.03.2014, 13:20 [ТС] | 8 | ||||||||||
Добавлено через 2 минуты Сейчас попробую показать на скриншоте. Добавлено через 9 минут Странно, но она заработала!, хотя я не понимаю, почему она не работала... Добавил только это:
0
|
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
15.03.2014, 13:25 | 9 |
Для чтения можно, для записи нет. Для добавления первой структуры (чтобы файл создавался): ofstream (или оfstream, ios::app) для добаления следующих: fstream(...., ios::in | ios::out | ios::binary). И при создании ofstream, ну нужно ios_base::trunc, данные и так стираются.
1
|
15.03.2014, 13:25 | |
|
Опции темы | |
|
Новые блоги и статьи | |||||
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP
В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
|
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
|
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
|
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
|
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
|
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
|
Параллельное программирование: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование
Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
|
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
|
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке
В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
|
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
|
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins
В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
|
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|