К объекту класса ofstream можно
}
К объекту класса 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++ )
Содержание Назад Вперед