Семестр 2 / Алгоритмизация Практика 8 язык С
Только сегодня: скидка до 20% в подарок на первый заказ.
Какую работу нужно написать?
Другую работу
Помощник Анна
Алгоритмизация и программирование – семестр 2 Практическое занятие № 8 «Бинарный файл» Задания: 1. (1балл) В одной программевыполнить следующие операции: (0,5 балла) В программе создать файл (file_in.dat ) . Сгенерировать 10 случайных чисел (0-100), вывести их на экран и записать в файл. Закрыть файл с паузой (программа не заканчивает работу!). Открыть файл в «Блокноте» (программу при этом не закрывать!), скопировать «странные» значки (4-хбайтовые числа в виде 1-но байтовых символов) в отчет и закрыть «Блокнот». Программу не заканчивать. (0,5 балла) Далее в этой же программе открыть файл, прочитать его и найти максимальное и минимальное число, не используя массив. Напечатать максимум и минимум. Закрыть файл и закончить программу. 2. (1балл) В одной программе выполнить следующие операции: Создать статический массив записей (5 записей) для информации о товарах: struct product < name string [10]; count integer; price double; >product [N]; (0,5 балла) Заполнить массив данными. Сохранить информацию из массива в файл. Открыть его в «Блокноте» (программу при этом не заканчивать!). Скопировать 4-х байтовые и 8-ми байтовые числа в виде 1-но байтовых символов, поле типа string [10] – оригинальное в отчет. Закрыть «Блокнот». (0,25 балла) Написать и выполнить функцию, который полностью заменяет одну из записей (поиск по наименованию) запись на другую; например, tmp.name:= ‘Маска’; tmp. price:= 10.5; tmp.count:= 100; Использовать функцию seek () . Проверить изменение в «Блокноте» — скопировать в отчет. (0,25 балла) Написать и выполнить функцию, которая вставляет после каждой записи в файле некоторую «фейковую» запись; например, tmp.name:= ‘Маска’; tmp. price:= 10.5; tmp.count:= 100;). Проверить изменение в «Блокноте». Выполняется в течении 1 занятия. Все экранные формы: вывод промежуточных результатов на экран из программы; вид файла в окне «Блокнота»; привести в Отчете по Практическому занятию.
| Практическоезанятие№8 | Страница1 |
12.04.2020 267.28 Кб 86 Алгоритмизация Практика 2 язык С.pdf
Создать бинарный файл и текстовый файл
Сконвертировать текстовый файл в бинарный, переписать только положительные числа в другой бинарный файл
Бинарные файлы!! Помогите пожалуйста. Дано бинарный файл ( данные сначала в текстовом, конвертирую.

Не получается прочесть правильно текстовый файл в структуру а затем в бинарный файл
Нужно просто прочесть файл в структуру данных а потом оттуда записать в бинарный файл Вот как.
Создать текстовый файл из 5 строк, прочитать созданный файл и получить новый файл согласно своему варианту. Dev C++
8)В новом файле заменить все латинские буквы верхнего регистра на буквы нижнего регистра.
Бинарный файл, как сконвертировать в текстовый
Здравствуйте, кто работал с бинарными файлами , не nодскажете какой нибудь гайд nо работе с ними.
205 / 181 / 112
Регистрация: 15.03.2014
Сообщений: 392
Пример близкий к Вашему.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
#include #include using namespace std; int main() { int a; // открываем файл для записи в бинарном режиме ofstream fileStrmOut( "file.bin", ios::binary ); // в цикле записываем 5 целых чисел в файл // в блокноте открыть и прочитать числа также просто как в варианте с текстовым файлом - не получится for ( int i = 0; i 5; ++i ) { cin >> a; fileStrmOut.write( ( char* ) &a, sizeof(int) ); } // не забываем закрывать файл fileStrmOut.close(); // проверяем что записали в файл путём чтения из него чисел и отображаем их на экране // открываем этот же файл для чтения в бинарном режиме ifstream fileStrmIn( "file.bin", ios::binary ); // в цикле считываем все числа из файла и выводим на экран while ( fileStrmIn.read( ( char * ) &a, sizeof(int) ) ) { cout <' '; } // закрываем файл fileStrmIn.close(); return 0; }
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Чтение/Запись в текстовый и бинарный файл.
Подскажите в чем ошибка. Функции чтения и записи в бинарный и текстовый файл толком не работают( .

Дан текстовый файл. Создать символьный файл, содержащий все знаки препинания, встретившиеся в текстовом файле
Дан текстовый файл. Создать символьный файл, содержащий все знаки препинания, встретившиеся в.
Работа с файлами
Любая программа, которая выполняется на компьютере пользователя скорее всего взаимодействует с файловой системой: умеет открывать файлы, сохранять их в своих форматах, возможно, хранит в файлах настройки.
Сегодня наши программы тоже смогут так делать!
Что такое файл?
До этого момента вся информация, с которой мы работали, хранилась исключительно в оперативной памяти — в переменных.
Но информация из оперативной пропадает при закрытии программы или перезагрузке компьютера. Что делать с данными, которые нужно хранить между запусками? Единственное решение — это хранить данные на энергонезависимом носителе — жестком диске (HDD) или твердотельном накопителе (SSD). Далее будет использоваться термин жесткий диск, хотя подразумевается любое из этих устройств.
Участок жесткого диска, у которого есть имя называется файлом.
Также, как и переменные, файлы занимают какое-то место, их размер измеряется в байтах.
Способ организации и хранения файлов на диске называется файловой системой.
Текстовые и бинарные файлы
С точки зрения прикладных программ файлы делятся на два основных типа: текстовые и бинарные. Физически оба типа файлов не отличаются и хранят в себе байты с данными, отличается лишь их интерпретация нашей программой.

В текстовых файлах хранятся текстовые данные. В зависимости от кодировки каждый символ кодируется равным числом байт.
Текстовые файлы могут иметь произвольные расширения, вам, возможно встречались .txt, .py, .html.
Текстовые файлы можно открыть в текстовом редакторе, например, в блокноте.
В бинарных файлах хранятся произвольные данные: символы, числа, дроби, но разные объекты могут кодироваться разным числом байт.
Как интерпретировать ту или иную группу байт в файле, нам говорит формат файла. Примеры бинарных файлов: .exe, .doc, .dll и тд..
Если открыть бинарный файл в блокноте, вы увидите много страшных символов — компьютер попытается интерпретировать все данные в файле как буквы.
Создаем текстовый файл
При работе с файлами всегда используется следующий алгоритм:
- открытие файла
- изменение или чтение файла
- закрытие файла
Не забудьте закрыть файл, если он вам больше не нужен, иначе другие программы не смогут открыть его. Операционная система следит за тем, чтобы файлом в один момент управляла только одна программа.
Чтобы открыть файл, в питоне используется функция open(path, mode) , которая принимает путь к файлу (абсолютный или относительный) и режим. Режим — это либо чтение (read), либо запись (write), либо добавление в конец файла (append).
Если файл открыт только для чтения, то записать данные в него нельзя. Нужно закрыть его и открыть в другом режиме.
Давайте создадим текстовый файл и запишем туда небольшой текст:
file = open('new.txt', 'w') # открываем файл new.txt для записи (w) file.write("hello world! :)") # записываем строку в файл file.close() # закрываем файл
Обратите внимание: если открыть файл для записи, старые данные из него автоматически стираются.
После выполнения программы, в папке с кодом должен появиться новый файл new.txt, а в нем — строка «hello world».
Читаем текстовый файл
Аналогично записи в текстовый файл, мы можем открыть его для чтения и прочитать все его содержимое в переменную.

file = open('smiles.txt', 'r') # открываем файл smiles.txt для чтения (r) text = file.read() # считываем все содержимое файла в переменную file.close() print(text[:100])
Файл smiles.txt можно скачать тут.
Используем with
Чтобы случайно не забыть закрыть файл после окончания работы с ним, используйте обертку with . Она автоматически закроет файл, как только закончится ее область видимости.
Пример:
with open('smiles.txt', 'r') as file: text = file.read() # файл автоматически закрылся print(text[:100])
Как создать бинарный файл в C

Бинарные файлы являются основой для хранения и обработки данных в различных программных приложениях. Они позволяют представлять информацию в виде набора битов, что обеспечивает более эффективное использование памяти и ускоряет процесс работы с данными.
В данной статье мы подробно рассмотрим, как создать бинарный файл в языке программирования C. Мы рассмотрим различные способы открытия, записи и чтения данных из бинарного файла, а также покажем примеры кода для более наглядного понимания процесса.
Перед тем, как начать работу с бинарными файлами, необходимо осознать, что данные в них хранятся в двоичном виде, т.е. в виде последовательности нулей и единиц. Это требует особого подхода к записи и чтению данных, поскольку неправильное использование может привести к потере информации или обрыву работы программы.
В процессе работы с бинарными файлами нам также придется иметь представление о типах данных в языке программирования C, таких как целые числа, вещественные числа, символы и указатели. Знание этих типов данных позволит нам правильно работать с данными в бинарном файле и обеспечить их сохранность.
Важно помнить, что работа с бинарными файлами требует более точного контроля и проверки данных, поскольку неправильное обращение к ним может привести к потере или повреждению информации. Поэтому, следуйте предложенному руководству и внимательно изучайте примеры кода, чтобы избежать ошибок.
Необходимые инструменты и языковые конструкции: что нужно знать перед началом работы
Прежде чем приступить к созданию бинарного файла в языке C, необходимо быть знакомым с некоторыми инструментами и языковыми конструкциями. В этом разделе мы рассмотрим основные из них.
Компилятор C
Для создания и компиляции программ на языке C вам понадобится компилятор C. Существуют различные компиляторы, такие как GCC, Clang и Microsoft Visual C++. Выбор компилятора зависит от платформы, на которой вы работаете. Убедитесь, что у вас установлен соответствующий компилятор и что он настроен правильно.
Базовые знания языка C
Для работы с бинарными файлами вам потребуются базовые знания языка C. Ознакомьтесь с основными концепциями языка, такими как переменные, типы данных, массивы, указатели, операторы ввода-вывода.
Структуры и объединения
Структуры и объединения — это основные инструменты для работы с данными в языке C. Они позволяют объединять различные типы данных в одну единицу и работать с ними как с единым целым.
Файловый ввод-вывод
Для работы с бинарными файлами вам понадобятся знания о файловом вводе-выводе в языке C. Вы должны быть знакомы с функциями для открытия, чтения, записи и закрытия файлов, такими как fopen, fread, fwrite, fclose.
Битовые операции
Битовые операции позволяют работать с отдельными битами в данных. Вам потребуется знание основных битовых операций, таких как операции И (&), ИЛИ (|), отрицание (~), сдвиг влево ( >).
Форматирование данных
При работе с бинарными файлами часто требуется форматирование данных, чтобы они корректно записывались и считывались. Вы должны знать, как правильно форматировать данные, используя функции форматированного ввода-вывода, такие как printf и scanf.
Это основные инструменты и языковые конструкции, которые вам понадобятся для создания бинарного файла в языке C. Приготовьтесь к изучению каждого из них и применению полученных знаний в практике, чтобы быть готовым начать работу с бинарными файлами.
Шаг за шагом: подробное руководство по созданию бинарного файла в C
Введение:
В C есть несколько способов создать бинарный файл. Бинарные файлы содержат данные, представленные в виде последовательности байтов, и могут использоваться для хранения различных типов данных, таких как числа, строки и т.д. В этом руководстве мы рассмотрим основной метод создания бинарного файла в C.
Шаг 1: Включение необходимых заголовочных файлов
Перед тем, как начать создание бинарного файла, необходимо включить в программу необходимые заголовочные файлы. Для создания бинарного файла we’ll используется файловая функциональность из стандартной библиотеки C — stdio.h :
Шаг 2: Открытие файла
Для создания бинарного файла сначала нужно открыть файл. Используется функция fopen() с режимом «wb» , что означает запись в бинарный файл (write-binary):
FILE *file = fopen(«binary_file.bin», «wb»);
Шаг 3: Запись данных в файл
После открытия файла, можно записать данные в него. Для этого используется функция fwrite() , в которую передается указатель на данные, размер одного элемента, количество элементов и указатель на файл:
Шаг 4: Закрытие файла
После записи данных в файл, его необходимо закрыть с помощью функции fclose() . Это позволяет освободить ресурсы и обновить файловую структуру данных системы:
Шаг 5: Завершение программы
После закрытия файла, можно завершить программу. Для этого используется возврат значения 0 из функции main() :
Полный пример:
#include int main()
FILE *file = fopen("binary_file.bin", "wb");
if (file == NULL)
printf("Не удалось открыть файл
");
return 1;
>
int data = 42;
fwrite(&data, sizeof(data), 1, file);
fclose(file);
return 0;
>
Заключение:
В этом руководстве мы рассмотрели шаги создания бинарного файла в C. От начала открытия файла до записи данных и закрытия файла, эти шаги можно легко повторить для создания бинарного файла с любыми данными. Используйте это руководство, чтобы начать создавать свои бинарные файлы в C.
Пример использования: как можно применить созданный бинарный файл
1. Чтение и запись данных
После создания бинарного файла в C, вы можете использовать его для чтения и записи данных. Например, вы можете создать программу, которая считывает данные из бинарного файла, обрабатывает их и записывает результат обратно в файл. Это может быть полезно в таких случаях, как хранение и обработка больших объемов данных или обмен данными между разными системами.
Пример кода:
#include #include
struct Person
char name[50];
int age;
>;
int main()
FILE *file;
struct Person person;
// Открываем бинарный файл для записи
file = fopen("people.bin", "wb");
// Проверяем, удалось ли открыть файл
if (file == NULL)
printf("Ошибка при открытии файла
");
exit(1);
>
// Записываем данные в файл
strcpy(person.name, "Иван Иванов");
person.age = 30;
fwrite(&person, sizeof(struct Person), 1, file);
// Закрываем файл
fclose(file);
// Открываем бинарный файл для чтения
file = fopen("people.bin", "rb");
// Проверяем, удалось ли открыть файл
if (file == NULL)
printf("Ошибка при открытии файла
");
exit(1);
>
// Читаем данные из файла
fread(&person, sizeof(struct Person), 1, file);
// Выводим прочитанные данные
printf("Имя: %s
", person.name);
printf("Возраст: %d
", person.age);
// Закрываем файл
fclose(file);
return 0;
>
В этом примере создается структура Person, содержащая поля name и age. Затем программа открывает файл «people.bin» для записи, записывает данные в файл, закрывает файл, затем открывает его снова для чтения и читает данные обратно в структуру Person. Наконец, данные выводятся на экран. Как видно из данного примера, можно использовать бинарный файл для хранения и обработки различных типов данных.
2. Кэширование данных
Еще одним примером применения бинарных файлов является кэширование данных. Кэширование позволяет ускорить работу программы, сохраняя некоторые вычисленные результаты или полученные данные для последующего использования. Бинарные файлы могут использоваться для сохранения этих кэш-данных, чтобы они могли быть восстановлены при последующих запусках программы.
Пример кода:
#include #include
void saveCacheData(double data[], int size)
FILE *file;
// Открываем бинарный файл для записи
file = fopen("cache.bin", "wb");
// Проверяем, удалось ли открыть файл
if (file == NULL)
printf("Ошибка при открытии файла
");
exit(1);
>
// Записываем данные в файл
fwrite(data, sizeof(double), size, file);
// Закрываем файл
fclose(file);
>
void loadCacheData(double data[], int size)
FILE *file;
// Открываем бинарный файл для чтения
file = fopen("cache.bin", "rb");
// Проверяем, удалось ли открыть файл
if (file == NULL)
printf("Ошибка при открытии файла
");
exit(1);
>
// Читаем данные из файла
fread(data, sizeof(double), size, file);
// Закрываем файл
fclose(file);
>
int main()
double cacheData[5] = ;
// Сохраняем кэш-данные в файл
saveCacheData(cacheData, 5);
// Загружаем кэш-данные из файла
loadCacheData(cacheData, 5);
// Выводим загруженные данные
for (int i = 0; i < 5; i++)
printf("%0.1f ", cacheData[i]);
>
return 0;
>
В этом примере функции saveCacheData и loadCacheData сохраняют и загружают кэш-данные в/b>бинарный файл «cache.bin». Кэш-данные являются массивом типа double, и в этом примере сохраняется и восстанавливается массив из пяти элементов. После загрузки данных, они выводятся на экран. Этот пример демонстрирует, как бинарные файлы могут использоваться для сохранения и загрузки кэш-данных, чтобы их можно было использовать в будущем без повторного вычисления или получения данных.
3. Сериализация объектов
Бинарные файлы также могут использоваться для сериализации объектов, то есть преобразования объектов в поток байтов, которые затем можно сохранить в файле. Сериализация позволяет сохранять состояние объекта и восстанавливать его позже. Бинарные файлы обычно являются одной из наиболее эффективных и компактных форматов для хранения сериализованных данных.
Пример кода:
#include #include
struct Person
char name[50];
int age;
>;
void serializePerson(struct Person person, char filename[])
FILE *file;
// Открываем бинарный файл для записи
file = fopen(filename, "wb");
// Проверяем, удалось ли открыть файл
if (file == NULL)
printf("Ошибка при открытии файла
");
exit(1);
>
// Записываем данные в файл
fwrite(&person, sizeof(struct Person), 1, file);
// Закрываем файл
fclose(file);
>
struct Person deserializePerson(char filename[])
FILE *file;
struct Person person;
// Открываем бинарный файл для чтения
file = fopen(filename, "rb");
// Проверяем, удалось ли открыть файл
if (file == NULL)
printf("Ошибка при открытии файла
");
exit(1);
>
// Читаем данные из файла
fread(&person, sizeof(struct Person), 1, file);
// Закрываем файл
fclose(file);
return person;
>
int main()
struct Person person;
struct Person loadedPerson;
strcpy(person.name, "Мария Сидорова");
person.age = 25;
// Сериализуем объект Person в файл
serializePerson(person, "person.bin");
// Десериализуем объект Person из файла
loadedPerson = deserializePerson("person.bin");
// Выводим загруженные данные
printf("Имя: %s
", loadedPerson.name);
printf("Возраст: %d
", loadedPerson.age);
return 0;
>
В этом примере функции serializePerson и deserializePerson преобразуют объект типа Person в поток байтов и сохраняют его в бинарном файле «person.bin». Затем они загружают объект из файла и выводят его данные на экран. Этот пример демонстрирует, как объекты могут быть сериализованы и сохранены в бинарном файле, а затем восстановлены для дальнейшего использования.
Это только некоторые примеры использования бинарных файлов в C. Бинарные файлы могут использоваться для различных целей, и их применение зависит от требований и задач вашей программы.