Метод is_open
Метод is_open класса ifstream возвращает true,
если файловый поток в данный момент связан с открытым файлом,
и false в противном случае. Метод не принимает параметров.
Его удобно использовать после вызова метода open, чтобы
убедиться, что файл был успешно открыт, прежде чем читать из него данные.
Синтаксис
ifstream_object.is_open()
Пример
Давайте откроем файл /var/www/index.html и проверим
с помощью метода is_open, был ли он успешно открыт:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream file("/var/www/index.html");
if (file.is_open()) {
cout << "File is open" << endl;
} else {
cout << "File is not open" << endl;
}
file.close();
return 0;
}
Результат выполнения кода:
"File is open"
Пример
Давайте попробуем открыть несуществующий файл и проверим
состояние потока с помощью метода is_open:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream file("/var/www/nonexistent.html");
if (file.is_open()) {
cout << "File is open" << endl;
} else {
cout << "File is not open" << endl;
}
return 0;
}
Результат выполнения кода:
"File is not open"
Пример
Давайте проверим состояние потока после его закрытия
с помощью метода close:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream file("/var/www/index.html");
cout << file.is_open() << endl;
file.close();
cout << file.is_open() << endl;
return 0;
}
Результат выполнения кода:
1
0