Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Работа с файлами в C++: открытие, чтение, запись и закрытие

Что такое работа с файлами в C++?

Работа с файлами позволяет сохранять данные программы на носителях. Направляя вывод программы в файл, можно затем обрабатывать, анализировать или архивировать эти данные.

Поток (stream) — абстракция, представляющая непрерывный источник или приёмник символов. C++ предоставляет мощную библиотеку fstream с классами и функциями для бесшовной работы с файлами.

В этом уроке вы узнаете:

Библиотека fstream

Библиотека fstream предоставляет три основных класса:

Наглядная справка:

Работа с файлами в C++: открытие, чтение, запись и закрытие

Для использования подключите заголовочный файл fstream и, при необходимости консольного вывода, iostream.

Как открыть файлы

Перед любой операцией файл должен быть открыт. Используйте ofstream для записи, ifstream для чтения, fstream для обоих. У каждого класса есть метод open():

open(имя_файла, режим);
ФлагОписание
ios::appРежим дозаписи — запись в конец файла.
ios::ateОткрыть и сразу перейти в конец.
ios::inОткрыть для чтения.
ios::outОткрыть для записи.
ios::truncУсечь существующий файл до нулевой длины.

Несколько флагов можно комбинировать через побитовое ИЛИ (|).

Пример 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;
}

Вывод:

Работа с файлами в C++: открытие, чтение, запись и закрытие

Скриншот запуска:

Работа с файлами в C++: открытие, чтение, запись и закрытие

Разбор кода:

  1. Подключаем iostream для консольного ввода/вывода.
  2. Подключаем fstream для файловых потоков.
  3. Используем пространство имён std.
  4. Создаём объект fstream с именем my_file.
  5. Открываем файл в режиме записи (ios::out).
  6. Проверяем успешность открытия; при неудаче сообщаем об ошибке.
  7. При успехе печатаем подтверждение и закрываем файл.
  8. Возвращаем 0 — нормальное завершение.

Как закрыть файлы

Хотя C++ автоматически сбрасывает и закрывает потоки при выходе из программы, явное закрытие после последней операции считается хорошей практикой.

Метод close() доступен у fstream, ofstream и ifstream:

void close();

Как записать в файл

Запись использует оператор вставки в поток (<<). Текст для сохранения должен быть в кавычках или подан напрямую в поток.

Пример 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;
}

Вывод:

Работа с файлами в C++: открытие, чтение, запись и закрытие

Скриншот кода:

Работа с файлами в C++: открытие, чтение, запись и закрытие

Разбор кода:

  1. Подключаем необходимые заголовки.
  2. Создаём объект fstream.
  3. Открываем целевой файл в режиме записи.
  4. Проверяем валидность потока.
  5. Вставляем строку "Guru99" в файл.
  6. Закрываем поток.
  7. Возвращаем 0.

Как читать из файла

Чтение использует оператор извлечения (>>) так же, как cin. Данные считываются в переменные соответствующих типов.

Пример 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;
}

Вывод:

Работа с файлами в C++: открытие, чтение, запись и закрытие

Скриншот запуска:

Работа с файлами в C++: открытие, чтение, запись и закрытие

Разбор кода:

  1. Подключаем iostream и fstream.
  2. Открываем файл для чтения (ios::in).
  3. Проверяем существование; если нет — уведомляем.
  4. Читаем символы по одному до достижения EOF.
  5. Печатаем каждый символ в консоль.
  6. Закрываем поток.
  7. Возвращаем 0.

Резюме

Язык C

  1. Работа с файлами в C: мастерство ввода-вывода с fopen, fprintf, fread и fseek
  2. Инициализация блочной памяти FPGA из текстовых файлов с помощью библиотеки TEXTIO в VHDL
  3. Обработка исключений в C++: практические примеры try, catch, throw
  4. Комментарии в C: пишем понятные и эффективные заметки
  5. Чтение файлов в Java с BufferedReader — Практическое руководство с примерами
  6. Заголовочные файлы в C: типы, подключение и лучшие практики
  7. Ввод-вывод в файлы в C++: чтение и запись с fstream
  8. Освоение обработки сигналов в C++: безопасное управление прерываниями и корректное завершение программы
  9. Ввод-вывод файлов в Python: полное руководство по операциям I/O
  10. Микрометр: как читать и использовать этот точное измерительный инструмент