|
0 / 0 / 0
Регистрация: 04.07.2023
Сообщений: 6
|
||||||
Разработать схемы алгоритмов, структуру и текст программы для обработки структурных данных текстового и бинарного файлов04.07.2023, 13:00. Показов 1545. Ответов 11
Метки с++ 1 курс (Все метки)
Не удается создать временный файл
Всё перепробовал, ничего не получается. Прошу помощи!
0
|
||||||
| 04.07.2023, 13:00 | |
|
Ответы с готовыми решениями:
11
Составить схемы алгоритмов, разработать проект формы и программы алгоритмическим языком C++ для выполнения индивидуально
Разработать приложение для создания и обработки бинарного файла, выполняющего роль «базы данных» |
|
Злостный нарушитель
10357 / 5772 / 1274
Регистрация: 12.03.2015
Сообщений: 26,668
|
|
| 04.07.2023, 13:16 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 04.07.2023
Сообщений: 6
|
|
| 04.07.2023, 13:17 [ТС] | |
|
а я не знаю
![]() вот и хочу узнать. Может из-за того, что у меня перегружено "<<". Но при этом эта перегрузка должна быть в коде по заданию.
0
|
|
|
Злостный нарушитель
10357 / 5772 / 1274
Регистрация: 12.03.2015
Сообщений: 26,668
|
||
| 04.07.2023, 13:19 | ||
|
Не читать же, в самом деле, полотенце твоего говнокода!
0
|
||
|
0 / 0 / 0
Регистрация: 04.07.2023
Сообщений: 6
|
||||||||||||||||
| 04.07.2023, 13:21 [ТС] | ||||||||||||||||
|
1) Объявить структурный тип, для описания характеристик объекта вашего варианта. Объявить внешнюю структуру.
Например:
3) Определить функцию (filtr()) для удаления пробелов (ведущих и замыкающих) в строковых данных. 4) Объявить функцию перегрузки операций вставки в поток "<<" (операции вывода) и извлечения из потока ">>" (операции ввода) для данного структурного типа по формату текстового файла данных, который будет программно создаваться. При перегрузке операции вывода "<< " на каждое поле структуры выделять нужное количество позиций и производить вывод с левым выравниванием, вывод полей вещественных типов производить с двумя десятичными знаками. Операция ввода данных из потока должна учитывать форматы файла данных. Ниже приведены функции перегрузки операций ввода / вывода для структурного типа stud:
Каждая строка файла будет содержать элементы одной из структур, вводимых с клавиатуры. Параметр функции - имя создаваемого текстового файла. В теле функции создается файл с данным именем для записи данных в текстовом режиме. Далее алгоритм функции строится в диалоговом режиме: Функция запрашивает данные. С клавиатуры вводятся значения полей и заносятся в оперативную память внешней структуры st. Значения введенных строковых полей “очищаются” от ведущих и завершающих пробелов. Ввод осуществляется с помощью перегруженной операции ввода данных из стандартного потока “>>”. Затем структура “целиком” из оперативной памяти копируется в текстовой файл, используя перегруженную операцию вывода “ <<”. Далее следует запрос о продолжении записи в файл. В случае положительного ответа, продолжается ввод/вывод данных, в противном случае, функция завершает свою работу с помощью оператора return, при этом, перед завершением закрывается созданный файл.
Бинарный файл содержит плотно упакованные двоичные представления структур, при этом составляющие их элементы располагаются подряд без разделения и различные структуры также друг от друга ничем не разделяются, так, например, нет деления на строки, содержащие данные одной структуры как в текстовом файле. Параметрами функции создания являются имена файлов: текстового файла с данными и создаваемого бинарного файла. В теле функции открывается файл данных для чтения данных в текстовом режиме. Новый файл создается для записи данных в файл в бинарном режиме. Организуется цикл, в котором, пока не будет достигнут конец файла данных, из файла считываются построчно данные в переменную st, используя перегруженную операцию извлечения (">>") и “целиком” st записывается в бинарный файл, используя компонентную функцию выходных потоков write () для двоичного (бинарного) вывода данных. Функция завершается закрытием файлов. 7) Создать с клавиатуры файл для тестирования функции удаления данных из бинарного файла. В каждую строку этого файла записать значение одного из полей структур, по которому будет производиться поиск удаляемых структур в бинарном файле. Файл следует составить следующим образом: - значение, равное полю последней структуры бинарного файла; - отсутствие поискового признака (пустая строка); - значение, не совпадающее с полями структур в бинарном файле; - значение, совпадающее с полем первой структуры бинарного файла. 8) Определить функцию удаления записей из бинарного файла. Параметрами функции являются имена файлов: бинарного файла, в котором хранятся структурные данные и файла данных – с поисковыми данными для удаления. Открыть файлы: - файл данных для удаления в режиме текстового чтения; - файл с записями структурных данных (бинарный) в режиме бинарного чтения и записи; - новый рабочий файл для записи данных в бинарном режиме. Объявить переменную, в которую будут читаться данные для удаления. Организовать цикл (пока не будет достигнут конец файла данных для удаления), в теле которого выполнять следующие действия: - считывать значение для удаления; - если значение для удаления представляет собой символьную строку, удалить из этой строки пробелы, ведущие и замыкающие; - если значение для удаления отсутствуют (например, это пустая строка), вывести на экран (и в файл результатов) соответствующую фразу об отсутствии поискового признака и с помощью оператора continue перейти к следующей итерации цикла; - в противном случае, если данное для удаления не пустое значение, выполнить следующие действия: 1. установить указатель в бинарном файле с записями на начало файла; 2. организовать вложенный цикл (до конца бинарного файла), в теле которого: - считывать по одной структуре из файла в переменную st, используя компонентную функцию входных потоков read () для двоичного (бинарного) ввода данных; - проверять совпадение контрольного поля структуры st со значением для удаления; - в случае совпадения, надо присвоить этому полю структуры st характерное значение, например, пустую строку (“пометить” удаляемую структуру); - и перезаписать откорректированную структуру на старое место в бинарный файл (для этого надо переместить указатель записи в файле “назад” на одну структуру); 3. если по завершению внутреннего цикла были прочитаны все записи бинарного файла, и совпадение полей не обнаружилось, вывести фразу, что таких данных в бинарном файле нет; Когда завершится внешний цикл, следует опять установить указатель в бинарном файле на начало. Организовать цикл, в котором считывать по одной записи из бинарного файла в структуру st, используя функцию read () двоичного чтения. Если значение контрольного поля в структуре st отличается от характерного значения (пустой строки), следует записывать структуру в рабочий файл, используя функцию write (). Цикл выполнять до конца бинарного файла. Закрыть бинарный и рабочий файлы. Бинарный файл удалить с диска, а рабочему файлу дать имя бинарного файла. Вызвать функцию коррекции файла данных. 9) Функция коррекции файла данных. Параметры функции имена файлов: текстового файла данных и бинарного файла, содержащего записи структур. Открыть бинарный файл в режиме бинарного чтения. Открыть файл данных для записи данных в текстовом режиме (создается новый файл) Организовать цикл (до конца бинарного файла), в котором считывать из бинарного файла по одной записи в оперативную память структуру st и выводить эту структуру “целиком” в файл данных, используя перегруженную операцию "<<". Закрыть файлы.
0
|
||||||||||||||||
|
Злостный нарушитель
10357 / 5772 / 1274
Регистрация: 12.03.2015
Сообщений: 26,668
|
|
| 04.07.2023, 13:26 | |
|
TerroFe4r, ни хрена се, вайнаимир!
Я там не нашёл про временный файл.
0
|
|
|
0 / 0 / 0
Регистрация: 04.07.2023
Сообщений: 6
|
|
| 04.07.2023, 13:31 [ТС] | |
|
Временный файл нужен для того, чтобы сохранить структуры, которые не подошли под фильтр, созданный в файле "delete.txt". Потому что мы сохраняем в него эти структуры, удаляем файл "data.bin". А затем этот файл переименовываем в имя удаленного файла
0
|
|
|
Злостный нарушитель
10357 / 5772 / 1274
Регистрация: 12.03.2015
Сообщений: 26,668
|
||
| 04.07.2023, 13:35 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 04.07.2023
Сообщений: 6
|
|
| 04.07.2023, 13:40 [ТС] | |
|
Понимаешь... Преподы бывают такими душными, что придираются к каждой запятой и могут поставить Н/A из-за того, что ты сделал задание не так, как он сказал.. Так и живём
0
|
|
|
Злостный нарушитель
10357 / 5772 / 1274
Регистрация: 12.03.2015
Сообщений: 26,668
|
|
| 04.07.2023, 13:44 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 04.07.2023
Сообщений: 6
|
|
| 04.07.2023, 13:48 [ТС] | |
|
0
|
|
|
Злостный нарушитель
10357 / 5772 / 1274
Регистрация: 12.03.2015
Сообщений: 26,668
|
||
| 04.07.2023, 14:01 | ||
|
0
|
||
| 04.07.2023, 14:01 | |
|
Помогаю со студенческими работами здесь
12
Разработать схемы алгоритмов и программы приближения функции Разработать схемы алгоритмов и программы приближения функции Разработать схемы алгоритмов и программы приближения функции разработать текст программы на турбо паскале для обработки таблици Разработать модуль(схемы алгоритмов и программы), содержащие процедуры и функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере 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-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|