|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
||||||
Запись структуры в файл, чтение из файла и удаление (файловый ввод/вывод)01.12.2016, 17:00. Показов 11774. Ответов 80
Метки нет (Все метки)
Добрый вечер! Возникла такая проблема, что при добавлении записи, удаляются уже имеющиеся записи в файле.
Также не помешала бы помощь в вопросе удаления записи, с указанным возрастом. Ну и вывод всего содержимого в файле. Спасибо, за помощь.
0
|
||||||
| 01.12.2016, 17:00 | |
|
Ответы с готовыми решениями:
80
Чтение из файла STL (файловый ввод/вывод)
|
|
Модератор
|
||
| 01.12.2016, 18:00 | ||
|
Добавлено через 4 минуты ios_base::in - открыть файл для чтения. ios_base::out - открыть файл для записи. ios_base::ate - перейти к концу файла после его открытия. ios_base::арр - добавлять в конец файла. ios_base::trunc - усечь файл, если он существует. ios_base::binary - двоичный файл
1
|
||
|
Модератор
|
||||||
| 01.12.2016, 18:03 | ||||||
|
Пример из учебника Стивена Праты:
1
|
||||||
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 01.12.2016, 19:34 [ТС] | |
|
А на счет удаления записи, с указанным возрастом. Есть какие-нибудь подсказки? Или опять делать новую "Тему"?
0
|
|
|
Модератор
|
|||
| 01.12.2016, 21:53 | |||
std::vector - там добавление и удаление элементов уже реализованы. А если непосредственно из файла, то тогда надо файл парсить по заданному параметру.поиск по заданному полю в массиве объектов пользовательского типа. Таких тем на форуме миллион.Добавлено через 1 минуту georgiisav988, по поводу show_data(). Я бы разбил эту функцию на две: read_data_from_file() и, собственно, show_data().Добавлено через 2 минуты georgiisav988, чтобы Вам было проще и было какое-то понимание происходящего, я бы посоветовал всё-таки что-нибудь почитать. Добавлено через 50 минут georgiisav988, тот же Прата прекрасно всё объясняет по данному вопросу (файловый ввод/вывод) в 6 главе (начиная со страницы 287) и, уже более подробно, в 17 главе (начиная со страницы 1015).
1
|
|||
|
Модератор
|
||||||
| 01.12.2016, 22:10 | ||||||
|
georgiisav988, вот так пока сделал (удаление завтра, уже сил нет, спать охота):
1
|
||||||
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 02.12.2016, 17:03 [ТС] | |
|
Спасибо. Буду ждать.
Добавлено через 18 часов 12 минут Сразу не заметил. Но можно без использования <vector>. Мы их просто еще не проходили.
0
|
|
|
Модератор
|
||
| 02.12.2016, 17:32 | ||
new, освобождайте с помощью delete - в первом варианте кода такой подход имел место быть, просто замените вектор на массив.Добавлено через 3 минуты georgiisav988, кстати, а вот примеры реализации поиска по заданному полю и удаления элемента, удовлетворяющего заданному условию:
1
|
||
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 02.12.2016, 18:12 [ТС] | |
|
И там тоже через вектора все реализовано, иначе не возможно, что ли сделать?
0
|
|
|
Модератор
|
||
| 02.12.2016, 18:33 | ||
|
Представьте: у Вас гора саморезов, простая крестовая отвёртка, профессиональный шуруповёрт с парой сменных батарей, металлический профнастил и чертёж, по которому вы должны в срок собрать внушительное количество однотипных металлических конструкций. Желание всё сделать на обычных сишных массивах подобно упрямству технофоба, крутящего миллион саморезов простой отвёрткой, и наотрез отказывающегося использовать шуруповёрт, несмотря на то, что рядом напарник с успехом его (такой же шуруповёрт, как и у Вас) использует. Оценили тонкость метафоры? Вы тот самый человек с отвёрткой. Понять как использовать вектора - делов на пол-часа (раз, два, три, четыре, пять и вот ещё - раз и два). Или в книжке прочитать пару глав - ещё лучше.
2
|
||
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 02.12.2016, 19:09 [ТС] | |
|
Сложность не в понятии вектора, а в том что их нельзя использовать в данной программе.
Я то прочитаю их, но использовать пока не могу. За информацию, отдельно, Спасибо
0
|
|
|
Модератор
|
||
| 02.12.2016, 19:10 | ||
std::vector на базе сишных массивов. Других вариантов я не вижу.
1
|
||
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 02.12.2016, 19:34 [ТС] | |
|
Прошу прощение.
Но можешь показать реализацию удаления с вектором? Что не могу понять, как это сделать. Если можно через вектор, то пусть будет вектор.
0
|
|
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 02.12.2016, 19:50 [ТС] | |
|
Крайне признателен
0
|
|
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 02.12.2016, 21:07 [ТС] | |
|
Даже с использованием вектора?
0
|
|
|
Модератор
|
||||||
| 02.12.2016, 23:08 | ||||||
Сообщение было отмечено georgiisav988 как решение
Решение
georgiisav988, ещё буду думать. Но быстрых результатов не обещаю. Может ещё кто-нибудь придёт из более опытных товарищей.
Добавлено через 1 час 58 минут georgiisav988, сделал. Работает не совсем гладко, код выглядит ужасно, много дублирования кода, всё это надо разбивать на более мелкие функции, в общем, пока что черновой вариант:
1
|
||||||
| 02.12.2016, 23:08 | |
|
Помогаю со студенческими работами здесь
20
Считать данные из текстового файла по условию и записать их в другой текстовый файл (файловый ввод/вывод) Структуры.Файловый ввод вывод в С++
структуры. файловый ввод-вывод. Для каждой строки файла удалить среднее слово; результат записать в файл (файловый ввод/вывод) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|