С++ для начинающих



         

Файловый ввод/вывод - часть 4


    "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 )

// смещение от текущей позиции в том или ином направлении




Содержание  Назад  Вперед