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


         

Читаем текстовый файл


Первая наша задача – прочитать текстовый файл, в котором будет производиться поиск. Нам нужно сохранить следующую информацию: само слово, номер строки и позицию в строке, где слово встречается.

Как получить одну строку текста? Стандартная библиотека предоставляет для этого функцию getline():

istream&

getline( istream &is, string str, char delimiter );

getline()берет из входного потока все символы, включая пробелы, и помещает их в объект типа string, до тех пор пока не встретится символ delimiter, не будет достигнут конец файла или количество полученных символов не станет равным величине, возвращаемой функцией-членом max_size()класса string.

Мы будем помещать каждую такую строку в вектор.

Мы вынесли код, читающий файл, в функцию, названную retrieve_text(). В объекте типа pair дополнительно сохраняется размер и номер самой длинной строки. (Полный текст программы приводится в разделе 6.14.)

Вот реализация функции ввода файла:[15]

// возвращаемое значение - указатель на строковый вектор

vector<string,allocator>*

retrieve_text()

{

    string file_name;

    cout << "please enter file name: ";

    cin >> file_name;

    // откроем файл для ввода ...

    ifstream 1nfile( file_name.c_str(), ios::in );

    if ( ! infile ) {

        cerr << "oops! unable to open file "

             << file_name << " -- bailing out!\n";

        exit( -1 );

    }

    else cout << '\n';

    vector<string, allocator> *1ines_of_text =

        new vector<string, allocator>;

    string textime;

    typedef pair<string::size_type, int> stats;

    stats maxline;

    int   linenum = 0;

    while ( getline( infile, textline, '\n' )) {

        cout << "line read: " << textline << '\n';

        if ( maxline.first < textline.size() ) {

            maxline.first = textline.size() ;

            maxline.second = linenum;



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





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий