|
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 76
|
||||||
Запись структуры в файл, чтение из файла и удаление (файловый ввод/вывод)01.12.2016, 17:00. Показов 12166. Ответов 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 | |
|
Считать данные из текстового файла по условию и записать их в другой текстовый файл (файловый ввод/вывод) Структуры.Файловый ввод вывод в С++
структуры. файловый ввод-вывод. Для каждой строки файла удалить среднее слово; результат записать в файл (файловый ввод/вывод) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|