Класс fstream
Класс fstream представляет собой поток для работы с файлами,
который одновременно поддерживает чтение и запись. Он наследует
функциональность классов ifstream и ofstream,
объединяя их методы в одном объекте. Для открытия файла используется
метод open, первым параметром которого является путь к файлу,
а вторым - режим открытия (например, ios::in для чтения,
ios::out для записи, ios::app для добавления в конец).
После завершения работы файл следует закрывать методом close.
Синтаксис
#include <fstream>
fstream file;
file.open(path, mode);
file.close();
Пример
Давайте откроем файл test.txt в режиме записи
и запишем в него строку "abcde":
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream file;
file.open("test.txt", ios::out);
if (file.is_open()) {
file << "abcde" << endl;
file.close();
cout << "done" << endl;
} else {
cout << "error" << endl;
}
return 0;
}
Результат выполнения кода:
"done"
Пример
Давайте откроем тот же файл test.txt в режиме чтения
и выведем его содержимое на экран:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
fstream file;
file.open("test.txt", ios::in);
if (file.is_open()) {
string line;
getline(file, line);
cout << line << endl;
file.close();
} else {
cout << "error" << endl;
}
return 0;
}
Результат выполнения кода:
"abcde"
Пример
Давайте откроем файл test.txt в режиме добавления
ios::app и допишем в конец строку "12345":
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream file;
file.open("test.txt", ios::app);
if (file.is_open()) {
file << "12345" << endl;
file.close();
cout << "done" << endl;
} else {
cout << "error" << endl;
}
return 0;
}
Результат выполнения кода:
"done"