Метод open
Метод open класса ofstream открывает файл
для записи и связывает его с потоком. Первым параметром
метод принимает путь к файлу, а вторым - режим открытия.
Режим открытия задаёт способ работы с файлом: перезапись,
добавление в конец, запись в бинарном виде и так далее.
По умолчанию файл открывается в режиме ios::out,
который перезаписывает содержимое файла. Если файл не
существует, он будет создан. Метод не возвращает значение,
а признак успешного открытия можно проверить через метод
is_open или оператор приведения к типу bool.
Синтаксис
ofstream.open(path, [mode])
Пример
Давайте откроем файл test.txt и запишем в него
строку "abcde":
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream file;
file.open("test.txt");
if (file.is_open()) {
file << "abcde" << endl;
file.close();
}
return 0;
}
После выполнения кода в файле test.txt будет
записана строка:
"abcde"
Пример
Давайте откроем файл в режиме добавления ios::app,
чтобы записать новую строку в конец файла, не стирая
предыдущее содержимое:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream file;
file.open("test.txt", ios::app);
if (file.is_open()) {
file << "12345" << endl;
file.close();
}
return 0;
}
Если файл test.txt уже содержал строку
"abcde", то после выполнения кода он будет
содержать:
"abcde"
"12345"
Пример
Давайте проверим, что метод open вернёт ошибку,
если попытаться открыть файл по несуществующему пути.
Признак ошибки можно получить через метод fail:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream file;
file.open("/nonexistent/path/test.txt");
if (file.fail()) {
cout << "Open failed" << endl;
}
return 0;
}
Результат выполнения кода:
"Open failed"