|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
||||||
Запись структуры в файл, чтение из файла и удаление (файловый ввод/вывод)01.12.2016, 17:00. Показов 12186. Ответов 80
Метки нет (Все метки)
Добрый вечер! Возникла такая проблема, что при добавлении записи, удаляются уже имеющиеся записи в файле.
Также не помешала бы помощь в вопросе удаления записи, с указанным возрастом. Ну и вывод всего содержимого в файле. Спасибо, за помощь.
0
|
||||||
| 01.12.2016, 17:00 | |
|
Ответы с готовыми решениями:
80
Чтение из файла STL (файловый ввод/вывод)
|
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 02.12.2016, 23:11 [ТС] | |
|
0
|
|
|
Модератор
|
|
| 02.12.2016, 23:13 | |
|
georgiisav988, я хотел сделать, чтобы прога удаляла все записи по выбранному критерию, а она удаляет только первую найденную запись, удовлетворяющую заданному условию - это раз. И если выбираем удалять по заданному возрасту (скажем, всех людей, у которых возраст равен 24), то он удаляет первую запись с таким возрастом, а в остальных почему-то возраст меняет, прибавляя единицу - где-то вкралась ошибка, никак найти её не могу.
А по одной записи если удалять, то вроде норм работает.
1
|
|
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 02.12.2016, 23:20 [ТС] | |
|
Т.е. надо удалить одну запись, потом перезапустить и выбрать еще раз?
Добавлено через 4 минуты Можно еще одну просьбу. Можешь объяснить кратко или подробно. Что для чего?!Если не сложно.
0
|
|
|
Модератор
|
|
| 03.12.2016, 16:21 | |
|
georgiisav988, как-то очень тяжко всё идёт. Попытался то, что есть разбить на отдельные функции и файлы - взорвал себе мозг появлением новых ошибок. Продолжаю грызть гранит. У меня сильное подозрение, что всё это решается в две строчки, но поскольку я нуб, то как у всех нубов моя основная проблема - нехватка нужных знаний и, как следствие, чудовищный overengineering.
1
|
|
|
Модератор
|
|||||||||||||||||||||
| 03.12.2016, 16:39 | |||||||||||||||||||||
|
Person.h
Person.cpp
my_functions.h
main.cpp
Благодаря ребятам я решил проблему с вводом в массив данных разного типа, но теперь появились новые ошибки - где-то я чего-то упускаю, почему-то данные с консоли я ввожу, но массив (вектор) остаётся пустой и при выводе на консоль выводятся значения по умолчанию. У меня уже глаз дёргается.
1
|
|||||||||||||||||||||
|
Модератор
|
|||||||
| 03.12.2016, 17:45 | |||||||
|
Коллега Mr.X напомнил про банальную перегрузку функций. Она у меня просто вылетела из головы. Теперь вот эту часть можно чуть-чуть упростить:
my_functions.h
Добавлено через 10 минут Добавлено через 5 минут Ну и да, пока этот кот1 не очень жизнеспособный. Но я над ним работаю. ________________________ 1семиногий трёхглазый кот с двумя головами, крыльями, ослиным хвостом, человеческими руками (обе левые) и драконьим гребнем на спине
1
|
|||||||
|
Модератор
|
|||||||||||||||||||||
| 03.12.2016, 17:46 | |||||||||||||||||||||
|
georgiisav988, нашёл ошибку. Вот пока что последняя версия:
Person.h
Person.cpp
my_functions.h
main.cpp
1
|
|||||||||||||||||||||
| 03.12.2016, 17:56 | |
|
0
|
|
|
Модератор
|
|
| 03.12.2016, 18:13 | |
|
DrOffset, а надо как? Исключения ловить?
Добавлено через 1 минуту DrOffset, я думаю у ТСа и так глаза уже на лоб вылезли от обилия всего - шаблоны, лябмды, range-based-for, перегруженные функции, STL... Добавлено через 1 минуту DrOffset, как бы всё это сделать проще и чище?
1
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 03.12.2016, 19:36 | ||
exit не вижу.Конкретно exit опасен тем, что при его использовании не будут вызваны деструкторы всех уже созданных автоматических объектов. В учебных задачах - это вообще не страшно, но потом наученные таким образом товарищи приходят работать и пишут точно так же. Во-первых не все ресурсы процесс сможет при таком выходе отдать операционной системе (да, память и файловые дескрипторы будут отданы, но не ими едиными), во-вторых совершенно не всегда нужно\возможно делать такой бескомпромиссный выход, да еще и с потерей контекста ошибки.
2
|
||
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 03.12.2016, 19:37 [ТС] | |
|
Спасибо большое. Но я новичок совсем, и смотрю сейчас и не понимаю, что и как мне засунуть в проект?
0
|
|
|
Модератор
|
|||||||||||||||||||||
| 03.12.2016, 20:16 | |||||||||||||||||||||
|
georgiisav988, ахахахаха, я это сделал!
Person.h
Person.cpp
my_functions.h
main.cpp
1
|
|||||||||||||||||||||
|
Модератор
|
||
| 03.12.2016, 20:45 | ||
|
Добавлено через 27 минут Обычно так делают: создают консольный проект (консольное приложение). Там всего один файл c функцией main(). Потом выбираешь в меню "Добавить новый файл" (чтобы добавить новый заголовочный файл, например вот как у меня my_functions.h) или "Добавить новый класс". Вот как добавить новый класс в QtCreator, например.
1
|
||
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 03.12.2016, 21:16 [ТС] | |
|
Visual 2015
0
|
|
|
Модератор
|
|
| 03.12.2016, 22:50 | |
|
georgiisav988, вот, сделал краткое руководство в картинках:
1
|
|
|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
|
| 03.12.2016, 23:17 [ТС] | |
|
Такой вопрос еще.
Если записи добавлены уже в файл, то удалить из файла запись нет возможности? Просто завтра буду просматривать код.
0
|
|
|
Модератор
|
||||||
| 03.12.2016, 23:20 | ||||||
|
georgiisav988, в секции main смотри 38 и 39 строки кода:
delete_chosen_data_from_array, а потом этот изменённый массив пишешь в файл с помощью функции copy_data_to_file. Так что всё там нормально удаляется.
1
|
||||||
| 03.12.2016, 23:20 | |
|
Считать данные из текстового файла по условию и записать их в другой текстовый файл (файловый ввод/вывод) Структуры.Файловый ввод вывод в С++
структуры. файловый ввод-вывод. Для каждой строки файла удалить среднее слово; результат записать в файл (файловый ввод/вывод) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного.
1. Почему показания термометра заряжены целью?
Цель заложена в самом. . .
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения.
https:/ / habr. com/ ru/ sandbox/ 295048/
По ссылке 403. Не очень информативно такую ссылку постить.
Запись от Usaga размещена Сегодня в 06:46 . . .
|
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|