производного от iostream) может открывать
"Melville", "Joyce", "Musil", "Proust", "Kafka"
};
int main()
{
ifstream inFile; // не связан ни с каким файлом
for ( int ix = 0; ix < fileCnt; ++ix )
{
inFile.open( fileTabl[ix].c_str() );
// ... проверить успешность открытия
// ... обработать файл
inFile.close();
}
}
Объект класса fstream ( производного от iostream) может открывать файл для ввода или
вывода. В следующем примере файл word.out сначала считывается, а затем записывается с помощью объекта типа fstream. Созданный ранее в этом разделе файл word.out содержит объект WordCount:
#include <fstream>
#include "WordCount.h"
int main()
{
WordCount wd;
fstream file;
file.open( "word.out", ios::in );
file >> wd;
file.close();
cout << "Прочитано: " << wd << endl;
// операция ios_base::out стерла бы текущие данные
file.open( "word.out", ios::app );
file << endl << wd << endl;
file.close();
}
Объект класса fstream может также открывать файл одновременно для ввода и вывода. Например, приведенная инструкция открывает файл word.out для ввода и дозаписи:
fstream io( "word.out", ios_base::in|ios_base::app );
Для задания нескольких режимов используется оператор побитового ИЛИ. Объект класса fstream можно позиционировать с помощью функций-членов seekg() или seekp(). Здесь буква g обозначает позиционирование для чтения (getting) символов (используется с объектом класса ofstream), а p – для записи (putting) символов (используется с объектом класса ifstream). Эти функции делают текущим тот байт в файле, который имеет указанное абсолютное или относительное смещение. У них есть два варианта:
// установить абсолютное смещение в файле
seekg( pos_type current_position )
// смещение от текущей позиции в том или ином направлении
Содержание Назад Вперед