Обработка файлов C++:как открывать, записывать, читать, закрывать файлы в C++
Что такое обработка файлов в C++?
Файлы постоянно хранят данные на запоминающем устройстве. При обработке файлов вывод программы может быть сохранен в файле. В файле с данными можно выполнять различные операции.
Поток — это абстракция устройства, на котором выполняются операции ввода/вывода. Вы можете представить поток как место назначения или источник символов неопределенной длины. Это будет определяться их использованием. C++ предоставляет вам библиотеку с методами обработки файлов. Давайте обсудим это.
Из этого руководства по С++ вы узнаете:
- Что такое обработка файлов в C++?
- Библиотека fstream
- Как открывать файлы
- Как закрыть файлы
- Как писать в файлы
- Как читать из файлов
Библиотека fstream
Библиотека fstream предоставляет программистам на C++ три класса для работы с файлами. Эти классы включают:
- потока – Этот класс представляет выходной поток. Он используется для создания файлов и записи информации в файлы.
- ifstream – Этот класс представляет входной поток. Он используется для чтения информации из файлов данных.
- фстрим – Этот класс обычно представляет файловый поток. Он поставляется с возможностями ofstream/ifstream. Это означает, что он может создавать файлы, записывать в файлы и читать из файлов данных.
Следующее изображение упрощает понимание:
<центр>
<рисунок> рисунок> центр>
Чтобы использовать вышеуказанные классы библиотеки fstream, вы должны включить ее в свою программу в виде заголовочного файла. Конечно, вы будете использовать директиву препроцессора #include. Вы также должны включить заголовочный файл iostream.
Как открывать файлы
Прежде чем выполнять какую-либо операцию с файлом, его необходимо сначала открыть. Если вам нужно записать в файл, откройте его с помощью объектов fstream или ofstream. Если вам нужно только прочитать файл, откройте его с помощью объекта ifstream.
В трех объектах, то есть fstream, ofstream и ifstream, определена функция open(). Функция использует следующий синтаксис:
open (file_name, mode);
- Параметр file_name указывает имя открываемого файла.
- Параметр режима является необязательным. Может принимать любое из следующих значений:
Возможно использование двух режимов одновременно. Вы объединяете их с помощью | (ИЛИ) оператор.
Пример 1:
#include <iostream> #include <fstream> using namespace std; int main() { fstream my_file; my_file.open("my_file", ios::out); if (!my_file) { cout << "File not created!"; } else { cout << "File created successfully!"; my_file.close(); } return 0; }
Вывод:
<сильный> сильный>
Вот скриншот кода:
Пояснение кода:
- Включите файл заголовка iostream в программу, чтобы использовать ее функции.
- Включите файл заголовка fstream в программу, чтобы использовать его классы.
- Включите пространство имен std в наш код, чтобы использовать его классы, не вызывая его.
- Вызовите функцию main(). Логика программы должна находиться внутри ее тела.
- Создайте объект класса fstream и назовите его my_file.
- Примените функцию open() к указанному выше объекту, чтобы создать новый файл. Режим вывода позволяет нам записывать в файл.
- Используйте оператор if, чтобы проверить, не удалось ли создать файл.
- Сообщение для печати на консоли, если файл не был создан.
- Конец тела оператора if.
- Используйте оператор else, чтобы указать, что делать, если файл был создан.
- Сообщение для печати на консоли, если файл был создан.
- Примените функцию close() к объекту, чтобы закрыть файл.
- Конец тела инструкции else.
- В случае успешного завершения программа должна вернуть значение.
- Конец тела функции main().
Как закрыть файлы
Как только программа C++ завершается, она автоматически
- сбрасывает потоки
- освобождает выделенную память
- закрывает открытые файлы.
Однако, как программист, вы должны научиться закрывать открытые файлы до завершения работы программы.
Объекты fstream, ofstream и ifstream имеют функцию close() для закрытия файлов. Функция использует следующий синтаксис:
void close();
Как писать в файлы
Вы можете писать в файл прямо из вашей программы на C++. Для этого вы используете оператор вставки потока (<<). Текст, который будет записан в файл, должен быть заключен в двойные кавычки.
Давайте продемонстрируем это.
Пример 2:
#include <iostream> #include <fstream> using namespace std; int main() { fstream my_file; my_file.open("my_file.txt", ios::out); if (!my_file) { cout << "File not created!"; } else { cout << "File created successfully!"; my_file << "Guru99"; my_file.close(); } return 0; }
Вывод :
Вот скриншот кода:
Пояснение кода:
- Включите файл заголовка iostream в программу, чтобы использовать ее функции.
- Включите файл заголовка fstream в программу, чтобы использовать его классы.
- Включите в программу пространство имен std, чтобы использовать его классы, не вызывая его.
- Вызовите функцию main(). Логика программы должна быть добавлена в тело этой функции.
- Создайте экземпляр класса fstream и назовите его my_file.
- Используйте функцию open(), чтобы создать новый файл с именем my_file.txt. Файл будет открыт в режиме вывода для записи в него.
- Используйте оператор if, чтобы проверить, не был ли открыт файл.
- Текст для печати на консоли, если файл не открыт.
- Конец тела оператора if.
- Используйте оператор else, чтобы указать, что делать, если файл был создан.
- Текст для печати на консоли, если файл был создан.
- Запишите текст в созданный файл.
- Используйте функцию close(), чтобы закрыть файл.
- Конец тела инструкции else.
- Программа должна возвращать значение после успешного завершения.
- Конец тела функции main().
Как читать из файлов
Вы можете считывать информацию из файлов в свою программу на C++. Это возможно с помощью оператора извлечения потока (>>). Вы используете оператор так же, как вы используете его для чтения пользовательского ввода с клавиатуры. Однако вместо объекта cin вы используете объект ifstream/fstream.
Пример 3:
#include <iostream> #include <fstream> using namespace std; int main() { fstream my_file; my_file.open("my_file.txt", ios::in); if (!my_file) { cout << "No such file"; } else { char ch; while (1) { my_file >> ch; if (my_file.eof()) break; cout << ch; } } my_file.close(); return 0; }
Вывод:
Нет такого файла
Вот скриншот кода:
Пояснение кода:
- Включите файл заголовка iostream в программу, чтобы использовать ее функции.
- Включите файл заголовка fstream в программу, чтобы использовать его классы.
- Включите в программу пространство имен std, чтобы использовать его классы, не вызывая его.
- Вызовите функцию main(). Логика программы должна быть добавлена в тело этой функции.
- Создайте экземпляр класса fstream и назовите его my_file.
- Используйте функцию open(), чтобы создать новый файл с именем my_file.txt. Файл будет открыт в режиме in для чтения из него.
- Используйте оператор if, чтобы проверить, не существует ли файл.
- Текст для печати на консоли, если файл не найден.
- Конец тела оператора if.
- Используйте оператор else, чтобы указать, что делать, если файл найден.
- Создайте символьную переменную с именем ch.
- Создайте цикл while для перебора содержимого файла.
- Записать/сохранить содержимое файла в переменной ch.
- Используйте условие if и функцию eof(), то есть конец файла, чтобы убедиться, что компилятор продолжает чтение из файла, если конец не достигнут.
- Используйте оператор break, чтобы остановить чтение из файла после достижения конца.
- Вывести содержимое переменной ch на консоль.
- Конец блока while.
- Конец тела инструкции else.
- Вызовите функцию close(), чтобы закрыть файл.
- Программа должна возвращать значение после успешного завершения.
- Конец тела функции main().
Обзор:
- При обработке файлов выходные данные программы можно отправлять и сохранять в файле.
- Затем к данным в файле можно применить ряд операций.
- Поток — это абстракция, представляющая устройство, на котором выполняются операции ввода/вывода.
- Поток может быть представлен либо как место назначения, либо как источник символов неопределенной длины.
- Библиотека fstream предоставляет программистам на C++ методы работы с файлами.
- Чтобы использовать библиотеку, вы должны включить ее в свою программу с помощью директивы препроцессора #include.
Язык C
- C Обработка файлов
- Как инициализировать RAM из файла с помощью TEXTIO
- Обработка исключений C++:пример Try, Catch, Throw
- Как писать комментарии в программировании на C
- Java BufferedReader:как читать файл в Java с примером
- C — заголовочные файлы
- Файлы и потоки C++
- Обработка сигналов С++
- Python — файловый ввод-вывод
- Что такое Микрометр? | Как вы читаете микрометр