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



         

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


}

К объекту класса ofstream можно применять и определенные пользователем экземпляры оператора вывода. Данная программа вызывает оператор вывода класса WordCount из предыдущего раздела:

#include <fstream>

#include "WordCount.h"

int main()

{

    // открыть файл word.out для вывода

    ofstream oFile( "word.out" );

    // здесь проверка успешности открытия ...

    // создать и вручную заполнить объект WordCount

    WordCount artist( "Renoir" );

    artist.found( 7, 12 ); artist.found( 34, 18 );

    // вызывается оператор <<(ostream&, const WordCount&);

    oFile << artist;

}

Чтобы открыть файл только для чтения, применяется объект класса ifstream, производного от istream. Следующая программа читает указанный пользователем файл и копирует его содержимое на стандартный вывод:

#include <fstream>

#include <string>

int main()

{

    cout << "filename: ";

    string file_name;

    cin >> file_name;

    // открыть файл для ввода

    ifstream inFile( file_name.c_str() );

    if ( !inFile ) {

         cerr << "не могу открыть входной файл: "

              << file_name << " -- аварийный останов!\n";

         return -1;

    }

    char ch;

    while ( inFile.get( ch ))

            cout.put( ch );

}

Программа, показанная ниже, читает наш текстовый файл alice_emma, фильтрует его с помощью функции filter_string() (см. раздел 20.2.1, где приведены текст этой функции и содержимое файла), сортирует строки, удаляет дубликаты и записывает результат на стандартный вывод:

#include <fstream>

#include <iterator>

#include <vector>

#include <algorithm>

template <class InputIterator>

void filter_string( InputIterator first, InputIterator last,

                    string filt_elems = string("\",?."))

{

    for ( ; first != last; first++ )




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