C++ предоставляет библиотеку
Напишите двоичный файл с помощью C++
Чтобы сохранить данные в двоичный файл с использованием C++, используется метод write(). Эта функция записывает указанное количество байтов в назначенный поток, начиная с местоположения указателя «put». Если указатель «put» находится в конце, файл расширяется. Однако новые данные перезаписывают существующие символы, если указатель находится внутри файла. В случае ошибки в процессе записи поток помечается как находящийся в состоянии ошибки. Теперь давайте перейдем к примерам, чтобы научиться писать в двоичный файл, используя некоторые простые встроенные функции C++.
Способ 1: запись двоичных файлов со структурированными данными
Во многих случаях вам может потребоваться записать структурированные данные, например пользовательские структуры, в двоичный файл. Давайте рассмотрим пример, который содержит запись о человеке, включающую имя, рост и возраст человека. Посмотрите следующий код и посмотрите объяснение:
#include
#include
структура Человек {
голец имя [ пятьдесят ] ;
интервал возраст ;
двойной высота ;
} ;
интервал основной ( ) {
стандартный :: внепотоковый outFile ( 'люди.bin' , стандартный :: iOS :: двоичный ) ;
если ( ! outFile. открыт ( ) ) {
стандартный :: Серр << «Ошибка! Невозможно открыть файл для записи!» << стандартный :: конец ;
возвращаться 1 ;
}
Человек человек1 '=' { 'Калсум Ильяс' , 25 , 1,75 } ;
Человек человек2 '=' { 'Калсум Баджва' , 30 , 1,68 } ;
outFile. писать ( reinterpret_cast < голец *> ( & человек 1 ) , размер ( человек 1 ) ) ;
outFile. писать ( reinterpret_cast < голец *> ( & человек2 ) , размер ( человек2 ) ) ;
outFile. закрывать ( ) ;
стандартный :: расчет << «Запись об этом человеке успешно записана в двоичный файл». << стандартный :: конец ;
возвращаться 0 ;
}
Вот разбивка кода с конкретными деталями. Программа начинается с определения пользовательской структуры под названием «Человек». Он имеет три поля: имя, возраст и рост. Подробная информация об этих полях следующая:
- имя: Строка для хранения имени человека (до 50 символов).
- возраст: Целое число для хранения возраста человека
- высота: Двойник для хранения роста человека
После определения структуры «Человек» запускается основная функция, которая является точкой входа в программу. Первая строка основной программы открывает файл с именем «people.bin». Мы используем «std::ofstream» для создания файла с именем «people.bin» для записи данных в двоичном формате. Проверка успешности открытия файла очень важна. В противном случае отображается сообщение об ошибке и программа останавливается. Следовательно, с помощью условия if и функции is_open() мы проверяем, успешно ли открылся файл или нет.
Здесь создаются два объекта «Человек». Мы определяем две переменные «person1» и «person2» типа «Person». Мы присваиваем переменным значения имени, возраста и роста для «Калсум Ильяс» и «Калсум Баджва».
Теперь, когда у нас есть данные для записи в двоичный файл, давайте выполним реальную функцию с помощью функции write(). Мы используем outFile.write для записи содержимого каждого объекта Person в файл. «reinterpret_cast
После записи данных в файл очень важно правильно его закрыть, чтобы никакие данные не были потеряны из-за какой-либо другой функции. Мы используем outFile.close() для освобождения ресурсов, связанных с файлом, и обеспечения точности записи данных. Наконец, мы печатаем сообщение, подтверждающее успешную запись данных в двоичный файл.
Если объяснить этот пример проще, то представьте себе специальную записную книжку, в которой можно хранить информацию о людях только на секретном языке. Этот код создает схему для организации информации (имя, возраст, рост). Он открывает блокнот, заполняет профили двух человек, переводит информацию на секретный язык и аккуратно записывает ее внутрь. Затем он надежно закрывает ноутбук, сохраняя профили для использования в будущем. Обратитесь к выводу программы, представленному на следующем снимке:
Способ 2: запись целых чисел в двоичный файл
В этом методе массив целых чисел записывается в двоичный файл с именем «integers.bin». «reinterpret_cast
#include
интервал основной ( ) {
стандартный :: внепотоковый outFile ( 'целые числа.bin' , стандартный :: iOS :: двоичный ) ;
если ( ! outFile. открыт ( ) ) {
стандартный :: Серр << «Ошибка! Невозможно открыть файл для записи!» << стандартный :: конец ;
возвращаться 1 ;
}
интервал цифры [ ] '=' { 42 , 99 , - 1 , 0 } ;
outFile. писать ( reinterpret_cast < голец *> ( цифры ) , размер ( цифры ) ) ;
outFile. закрывать ( ) ;
стандартный :: расчет << «Данные целые числа успешно записаны в двоичный файл». << стандартный :: конец ;
возвращаться 0 ;
}
Вот разбивка кода с конкретными деталями:
«#include
Следующая строка: «int Numbers[] = {42, 99, -1, 0};» определяет массив с именем «numbers» с целыми числами 42, 99, -1 и 0. «outFile.write(reinterpret_cast
Заключение
Написание двоичных файлов на C++ — важнейший навык для эффективной обработки различных типов данных. В этом исследовании написания двоичных файлов на C++ мы узнали, как можно использовать класс ofstream для эффективной обработки двоичных данных. Независимо от того, имеете ли вы дело с простыми целыми числами или структурированными данными с использованием пользовательских структур, процесс включает в себя открытие потока файлов, запись данных в двоичном формате и затем закрытие файла. Эта возможность предоставляет разработчикам C++ гибкость при работе с разнообразными типами двоичных данных, способствуя универсальности языка в приложениях, от программирования на уровне системы до обработки мультимедиа.