Библиотека файлового ввода-вывода C++ - <fstream>
В C++, <fstream>— это класс в стандартной библиотеке для операций файлового ввода-вывода. Он предоставляет удобный способ чтения и записи файлов.
fstreamДаiostream— часть библиотеки, поддерживающая чтение и запись текстовых и бинарных файлов.
fstream— это классiostream— класс в библиотеке, который наследуется отistreamиostream, что означает, что его можно использовать как для ввода, так и для вывода.
Синтаксис
fstreamБазовый синтаксис выглядит следующим образом:
int main() {
std::fstream file; // Создать объект fstream
file.open("filename", mode); // Открыть файл
// Выполнить файловые операции
file.close(); // Закрыть файл
return 0;
}
гдеfilename— это имя файла,mode— это режим открытия файлов, распространённые режимы включают:
std::ios::in: Открывает файл в режиме ввода.std::ios::out: Открывает файл в режиме вывода.std::ios::app: Открывает файл в режиме добавления.std::ios::ate: Открывает файл и устанавливает позицию в конце файла.std::ios::trunc: открывает файл и усекает его, т. е. очищает содержимое файла.
Пример
Запись в текстовый файл:
Пример
#include <iostream>
int main() {
std::fstream file;
file.open("example.txt", std::ios::out); // Открыть файл в режиме вывода
if (!file) {
std::cerr << "Не удалось открыть файл!" << std::endl;
return 1; // Не удалось открыть файл
}
file << "Привет, мир!" << std::endl; // Записать текст
file.close(); // Закрыть файл
return 0;
}
Создайте файл с именем в текущем каталогеexample.txtфайл, содержимое файла:
Hello, World!
Прочитать текстовый файл
Пример
#include <iostream>
#include <string>
int main() {
std::fstream file;
file.open("example.txt", std::ios::in); // Открыть файл в режиме ввода
if (!file) {
std::cerr << "Не удалось открыть файл!" << std::endl;
return 1; // Не удалось открыть файл
}
std::string line;
while (getline(file, line)) { // Читать построчно
std::cout << line << std::endl;
}
file.close(); // Закрыть файл
return 0;
}
ifexample.txtФайл содержит следующее содержимое:
Hello, World! This is a test file.
затем программа выведет:
Hello, World! This is a test file.
Добавить в файл:
Пример
#include <iostream>
int main() {
std::fstream file;
file.open("example.txt", std::ios::app); // Открыть файл в режиме добавления
if (!file) {
std::cerr << "Не удалось открыть файл!" << std::endl;
return 1; // Не удалось открыть файл
}
file << "Добавление этой строки в файл." << std::endl; // Добавить текст
file.close(); // Закрыть файл
return 0;
}
example.txtИзначально файл содержал следующее содержимое:
Hello, World! This is a test file.
После выполнения вышеуказанной программы содержимое файла станет:
Hello, World! This is a test file. Appending this line to the file.Другие расширения