|
Программирование >> Инициализация объектов класса, структура
#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++ ) string::size type pos = 0; while (( pos = (*first).find first of( filt elems, pos )) string::npos (*first).erase( pos, 1 ); int main() { ifstream infile( alice emma ); istream iterator<string> ifile( infile ); istream iterator<string> eos; vector< string > text; copy( ifile, eos, inserter( text, text.begin() )); string filt elems( \ ,.?;: ); filter string( text.begin(), text.end(), filt elems ); vector<string>::iterator iter; sort( text.begin(), text.end() ); iter = unie( text.begin(), text.end() ); text.erase( iter, text.end() ); ofstream outfile( alice emma sort ); iter = text.begin(); for ( int line cnt = 1; iter != text.end(); ++iter, ++line cnt ) outfile << *iter << ; if ( ! ( line cnt % 8 )) outfile << \n; outfile << endl; После компиляции и запуска программа выводит следующее: A Alice Daddy Ea Her I Shyly a alive almost asks at beautiful bird blows but creature fiery flight flowing hair has he her him in is it like long looks magical mean more no red same says she shush such tell tells the there through time untamed wanting when wind ifstream curFile; ... curFile.open( filename.c str() if ( ! curFile ) открытие успешно ? open() : #include <fstream> const int fileCnt = 5; string fileTabl[ fileCnt ] = { Melville , Joyce , Musil , Proust , Kafka int main() { ifstream inFile; не связан ни с каким файлом for ( int ix = 0; ix < fileCnt; ++ix ) { inFile.open( fileTabl[ix].c str() ); ... проверить успешность открытия ... обработать файл inFile.close(); Чтобы закрыть файл (отключить от программ:), вызываем функцию-член close(): Объект класса fstream (производного от iostream) может открывать файл для ввода или вывода. В следующем примере файл word.out сначала считывается, а затем записывается с помощью объекта типа fstream. Созданный ранее в этом разделе файл word.out содержит объект WordCount: Объекты классов ofstream и ifstream разрешено определять и без указания имени файла. Позже к этому объекту можно присоединить файл с помощью функции-члена
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |