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

         

Дополнительные операторы ввода/вывода


Иногда необходимо прочитать из входного потока последовательность не интерпретируемых байтов, а типов данных, таких, как char, int, string и т.д. Функция-член get() класса istream читает по одному байту, а функция getline() читает строку, завершающуюся либо символом перехода на новую строку, либо каким-то иным символом, определяемым пользователем. У функции-члена get() есть три формы:

  • get(char& ch) читает из входного потока один символ (в том числе и пустой) и помещает его в ch. Она возвращает объект iostream, для которого была вызвана. Например, следующая программа собирает статистику о входном потоке, а затем копирует входной поток в выходной:
  • #include <iostream>

    int main()

    {

       char ch;

       int  tab_cnt = 0, nl_cnt = 0, space_cnt = 0,

            period_cnt = 0, comma_cnt = 0;

       while ( cin.get(ch)) {

               switch( ch ) {

                         case ' ':  space_cnt++;  break;

                         case '\t': tab_cnt++;    break;

                         case '\n': nl_cnt++;     break;

                         case '.':  period_cnt++; break;

                         case ',':  comma_cnt++;  break;

                }

                cout.put(ch);

       }

       cout << "\nнаша статистика:\n\t"

            << "пробелов: "    << space_cnt  << '\t'

            << "символов новой строки: " << nl_cnt     << '\t'

            << "табуляций: "      << tab_cnt    << "\n\t"

            << "точек: "   << period_cnt << '\t'

            << "запятых: "    << comma_cnt  << endl;

    }

    Функция-член put() класса ostream дает альтернативный метод вывода символа в выходной поток: put() принимает аргумент типа char и возвращает объект класса ostream, для которого была вызвана.

    После компиляции и запуска программа печатает следующий результат:

    Alice Emma has long flowing red hair. Her Daddy says

    when the wind blows through her hair, it looks almost alive,




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