Файлове введення досягається при зв’язуванні вхідного потоку з файлом за допомогою змінної класу ifstream або fstream. Ці класи визначені у файлі заголовка fstream.h. Файлове введення може використовуватися точно так, як і звичайне потокове введення, оскільки клас ifstream породжений від класу istream. Файлове введення повинне здійснювати перевірку помилок.
ifstream inFile(“myFile”); // спробувати відкрити myFile
if(!inFile) // відкриття неможливе
{
cerr << “Cannot open ” myFile” for inputn”;
exit(1);
}
int a, b;
inFile >> a >> b;
9. Інше файлове введення/виведення
void open(char* name, int mode = ios::out, int prot = filebuf::openprot);
– відкриває файл і зв’язує його з відкритим раніше потоком. Параметр mode може мати такі значення:
ios::app – всі записувані дані додаються в кінець файлу (мається на увазі ios::out);
ios::ate – всі записувані дані додаються в кінець файлу (не мається на увазі ios::out);
ios::in – файл відкривається для введення;
ios::out – файл відкривається для виведення;
ios::trunc – усікання попереднього вмісту файлу (мається на увазі ios::out);
ios::nocreate – якщо файл не існує, то відкрити його неможливо;
ios::noreplace – якщо файл уже існує, то відкрити його неможливо.
Функція open() установлює режим захисту prot.
void close();
– закриває файл і відкріплює його від потоку.
ifstream encyclopaedia;
for(int i=0; i<numVolumes; ++i)
{
encyclopaedia.open(volume[i]);
if(!encyclopaedia)
{
// обробка помилки відкриття файлу
}
// обробка файлу
encyclopaedia.close();
}
Лекція 15. Стани форматування