std::fstream::close() в С++
Файлы играют важную роль в программировании. Это позволяет хранить данные постоянно. Язык C++ предоставляет механизм для хранения вывода программы в файле и просмотра из файла на диске. Этот механизм называется обработкой файлов. Для выполнения обработки файлов используются следующие общие функции:
- open() : эта функция помогает создать файл и открыть его в различных режимах, таких как операции ввода, операции вывода, двоичный режим и т. д.
- close() : эта функция помогает закрыть существующий файл.
- get(): эта функция помогает прочитать один символ из файла.
- put() : эта функция помогает записать в файл один символ.
- read() : эта функция помогает читать данные из файла.
- write() : эта функция помогает нам записывать данные в файл.
Поток — это абстракция, представляющая инструмент, на котором выполняются операции ввода и вывода. Поток часто представляется как источник или назначение символов неопределенной длины, в расчете на его использование. До сих пор заголовочный файл, предоставляющий функции cin и cout , использовался для запроса ввода с консоли и записи вывода на консоль соответственно. В C++ есть группа методов обработки файлов. К ним относятся ifstream, ofstream и fstream. Эти классы получены из fstreambase и из соответствующего класса iostream. Эти классы разработаны таким образом, что они могут управлять файлами на диске, объявленными в fstream, и поэтому этот файл должен быть включен в любую программу, использующую файлы.
Библиотека fstream: Fstream — это библиотека, состоящая из ofstream и ifstream , что означает, что она может создавать файлы, записывать информацию в файлы и считывать информацию из файлов. Этот заголовочный файл обычно используется как тип данных, представляющий файловый поток. Который используется при описании синтаксиса для открытия, чтения, ввода и закрытия файла и т. д.
Как закрыть файл? Чтобы использовать файл на диске для хранения данных, необходимо определить следующие параметры файла и его предполагаемого использования. Следует отметить следующие параметры:
- Имя файла.
- Тип данных и структура файла.
- Назначение (чтение, запись данных).
- Метод открытия.
- Закрытие файла после использования.
В этой статье основное внимание уделяется закрытию файла. В случае, если программа C++ завершается, она автоматически сбрасывает все потоки, освобождает всю выделенную память и закрывает все открытые файлы. Следовательно, это хорошая альтернатива использованию функции close() для закрытия потоков, связанных с файлами, и она является членом объектов ifsream, ofstream и fstream.
Синтаксис:
close()
Характеристики:
- Возвращаемое значение: функция close() не предоставляет возвращаемого значения, что означает, что в случае сбоя операции, в том числе если перед вызовом не было открыто ни одного файла, для потока устанавливается флаг состояния failbit (который может вызвать ios_base::failure, если это состояние флаг был зарегистрирован с использованием исключений членов.
- Обработка исключений: когда функция снабжена исключением и поток находится в допустимом состоянии, любое исключение, созданное внутренней операцией, перехватывается функцией и повторно создается после закрытия файла. Он создает исключение для отказа типа члена только в том случае, если функция дает сбой (установка флага состояния failbit ) и для этого состояния установлены исключения членов.
- Он изменяет объект fstream . Параллельный доступ к эквивалентному потоку может привести к гонкам данных.
Ниже приведена программа C++ для реализации функции close():
C++
// C++ program to implement close() function #include <fstream> #include <iostream> using namespace std; // Driver Code int main() { char data[100]; // Open a file in write // mode. ofstream outfile; outfile.open( "gfg.data" ); cout << "Writing to the file" << endl; cout << "Enter your name: " ; // This function will take the entire // the user enters and will store in // the "data" array declare above cin.getline(data, 100); // Write inputted data into // the file. outfile << data << endl; // Here we make use of the close() // function to close the opened file outfile.close(); // Open a file in read mode ifstream infile; infile.open( "gfg.data" ); cout << "Reading from the file" << endl; infile >> data; // Write the data at the screen cout << data << endl; // Close the opened file infile.close(); return 0; } |
Выход: