|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
||||||
Запись структуры в файл, чтение из файла и удаление (файловый ввод/вывод)01.12.2016, 17:00. Показов 12208. Ответов 80
Метки нет (Все метки)
Добрый вечер! Возникла такая проблема, что при добавлении записи, удаляются уже имеющиеся записи в файле.
Также не помешала бы помощь в вопросе удаления записи, с указанным возрастом. Ну и вывод всего содержимого в файле. Спасибо, за помощь.
0
|
||||||
| 01.12.2016, 17:00 | |
|
Ответы с готовыми решениями:
80
Чтение из файла STL (файловый ввод/вывод)
|
|
Модератор
|
||||||||||||||||||||||||||
| 04.12.2016, 00:04 | ||||||||||||||||||||||||||
Сообщение было отмечено georgiisav988 как решение
Решение
Вот работающий готовый код для
MS Visual Studio 2015:main.cpp
Person.h
Person.cpp
my_functions.h
stdafx.h
1
|
||||||||||||||||||||||||||
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 04.12.2016, 15:41 [ТС] | |
|
Спасибо большое, за оказанную помощь.
Все же хотелось спросить, как осуществляется удаление записи? Я вижу, что все работает, но понять, как мне пока не удается..... И за гайд создания также отдельное, Спасибо!
0
|
|
|
Модератор
|
|||
| 04.12.2016, 22:09 | |||
|
georgiisav988, алгоритм таков.
Шаг 1-ый. Сначала выводится самое первое меню: 1 - ADD (добавить записи) 2 - SHOW (отобразить имеющиеся записи) 3 - DELETE (удалить имеющиеся записи) 4 - EXIT (выйти из программы) Если на этом этапе Вы выберете 2 или 3 пункты, программа выведет предупреждение: No entries were found!, то есть, Ни одной записи не найдено!. И действительно, Вы ведь ещё не ввели ни одной записи. Так сделайте это! Выберите цифру 1 (ADD - добавить записи).Шаг 2-ой. Выберите количество записей. Ну, например, 3. Теперь последовательно введите данные для первого студента: ФИО, адрес, телефон, возраст. Потом для второго студента так же: ФИО, адрес, телефон, возраст. Потом для третьего студента точно так же: ФИО, адрес, телефон, возраст. Допустим, Вы ввели такие строчки:
Выведите сохранённые данные на экран. Для этого выберите в меню 2 (SHOW - отобразить записи).Шаг 4-ый. Выберите в меню 3 (DELETE - удалить записи).Шаг 5-ый. Выберите критерий поиска: 1 - SEEK ENTRY BY NAME (искать записи по совпадению ФИО) 2 - SEEK ENTRY BY ADDRESS (искать записи по совпадению адреса) 3 - SEEK ENTRY BY PHONE (искать записи по совпадению телефона) 4 - SEEK ENTRY BY AGE (искать записи по совпадению возраста) Шаг 6-ой. Например, Вы выбрали цифру 4. То, есть искать записи по возрасту. Теперь надо ввести сам возраст. Давайте скажем программе, чтобы она искала всех студентов, возраст которых равен 23.Шаг 7-ой. Выведите оставшиеся записи на экран, то есть нажмите 2 (SHOW - отобразить записи).Вы должны увидеть только такую запись:
Шаг 8-ой. Поробуйте ещё поэкспериментировать с программой - удаляйте, добавляйте, отображайте записи. Шаг 9-ый. Когда Вам наконец это надоест - выберите 4 (EXIT - выйти из программы).Шаг 10-ый. Откройте для себя гугл-переводчик. И начните учить английский. Программист без английского - это как безрукий снайпер. Ну или как безногий бегун.
1
|
|||
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 04.12.2016, 22:20 [ТС] | |
|
Видимо, я не понятно объяснил, что именно спросил.
Я понял алгоритм программы и действия каждого пункта. Вопрос был насчет, для чего используется вектор, как осуществляется удаление, т.е. программно как происходит. Да и я понял, что там на английском написано.
0
|
|
|
Модератор
|
||||||
| 05.12.2016, 10:20 | ||||||
|
georgiisav988, вот версия с подробными комментариями:
main.cpp
1
|
||||||
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 05.12.2016, 12:06 [ТС] | |
|
Т.е. данные берутся из файла и помещаются в массив(контейнер), работает с ним и потом записывает обратно в файл?
Да буду рад!
0
|
|
|
Модератор
|
||||||
| 05.12.2016, 12:26 | ||||||
|
georgiisav988, вот:
my_functions.h
1
|
||||||
|
Модератор
|
||
| 05.12.2016, 17:45 | ||
|
Добавлено через 1 час 39 минут georgiisav988, что-то прояснилось или код по-прежнему вызывает священный ужас? ))) Добавлено через 3 часа 28 минут georgiisav988, про предикаты вот тут коллега rikimaru2013 хорошо написал.
2
|
||
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 05.12.2016, 17:51 [ТС] | |
|
Вот например. Я добавил три записи, закрыл программу, потом заново включил и выбрал пункт Delete.
Тогда все содержимое помещается в массив(vector) и там удаляется, и потом переписывается в файле, так или как-то по другому идет?
0
|
|
|
Модератор
|
|||
| 05.12.2016, 18:07 | |||
|
Добавлено через 14 минут
1
|
|||
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 05.12.2016, 18:27 [ТС] | |
|
Если при повторном запуске программы, массив пуст. То я вообще не понимаю, как все происходит!
0
|
|
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 05.12.2016, 19:22 [ТС] | |
|
Можешь объяснить, последовательно, как происходит удаление, при повторном запуске программы?!
0
|
|
|
Модератор
|
||
| 05.12.2016, 19:24 | ||
|
1
|
||
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 05.12.2016, 23:37 [ТС] | |
|
А как в массив добавляется записи?
0
|
|
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 05.12.2016, 23:43 [ТС] | |
|
Так, смотри. В первый раз я добавил 3 записи.
Потом закрыл. Потом заново открыл. И просто выбрал пункт 3-Delete. В это случаи, как происходит?!
0
|
|
|
Модератор
|
|||
| 06.12.2016, 00:11 | |||
пустоту.В файл идёт копирование из массива только после того, как ты с клавиатуры в этот самый массив внесёшь данные. Внесёшь именно вот в этот конкретный раз, в этот сеанс работы с прогой. Записи, находящиеся в файле с прошлого сеанса работы с программой игнорируются. Программа при новом сеансе ничего о них не знает. Добавлено через 15 минут georgiisav988, я уже понял, что тебе надо не только писать в файл, но и читать из файла. Это можно сделать, но уже не сегодня. У меня уже третий час ночи. Я спать.
1
|
|||
| 06.12.2016, 00:11 | |
|
Считать данные из текстового файла по условию и записать их в другой текстовый файл (файловый ввод/вывод) Структуры.Файловый ввод вывод в С++
структуры. файловый ввод-вывод. Для каждой строки файла удалить среднее слово; результат записать в файл (файловый ввод/вывод) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Новости компьютерного мира и их обсуждение (4)
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|