Разработка приложений на C++
  • Введение
  • Особенности разработки программ на С++
    • Указатель на функцию
    • Преобразование типов
    • Наследование
    • Виртуальные функции
    • Перегрузка операций
    • Функциональные объекты
    • Шаблоны
    • Пространства имён
    • Обработка исключительных ситуаций
    • Немного о компиляции и сборке
    • Рекоммендации по написанию кода
    • Новые возможности стандарта С++11
    • Терминология
  • Понятие структур данных
    • Массивы
    • Динамические структуры
  • Метапрограммирование
    • Шаблоны функций
    • Шаблоны классов
    • Специализация шаблонов
      • Пример: вычисление факториала
      • Пример: числа Фиббоначчи
    • Конфигурации шаблонных классов
  • Стандартная библиотека С++
    • Обзор стандартной библиотеки С++
    • Структура стандартной библиотеки С++
      • Концепции
    • Ввод-вывод данных
    • Примитивы, определённые в библиотеке STL
    • Итераторы
    • Контейнеры
      • Inplus: Как это работает
    • Алгоритмы
      • inplus: Как это работает
    • Примеры использования стандартной библиотеки С++
    • Стандартная библиотека С++/Вопросы
    • Стандартная библиотека С++/Примеры лабораторных работ
  • Разработка и использование библиотек программирования
    • Создание библиотек программирования
    • Использование динамических библиотек
    • Вопросы
    • Примеры лабораторных работ
  • Ответы на вопросы
Powered by GitBook
On this page
  1. Стандартная библиотека С++

Ввод-вывод данных

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

Стандартная библиотека С++ включает в себя библиотеку, предназначенную для работы с потоками данных – iostream. Эта библиотека предоставляет следующие элементы:

  • Базовые шаблонные классы. Эти классы предлагают большую часть функциональности библиотеки, независящую от типов данных. В качестве параметров шаблонов классов выступают тип символов (char_type) и дополнительные свойства типов символов (traits).

  • Инстанциированные шаблонные классы – в первом в качестве параметра типа символов используется тип char, во втором – wchar_t.

  • Стандартные объекты. Эти объекты представляют собой стандартные потоки ввода/вывода. Они представлены такими объектами как cin, cout, cerr, clog (а также wcin, wcout, wcerr и wclog)

  • Манипуляторы – глобальные функции, используемые для управления потоком. Они могут быть использованы совместно с операторами извлечения из потока (<<) и выталкивания в поток (>>).

Наиболее часто из библиотеки iostream используются стандартные объекты, а также классы предназначенные для работы с файлами и строками.

  • cin - объект класса istream, представляющий собой стандартный поток ввода данных. По умолчанию данные считываются с клавиатуры. Для считывания данных из входного потока обычно используется оператор >>. В этом случае данные считываются в указанную переменную до пробельного символа. Объявлен в заголовочном файле iostream.

  • cout - объект класса ostream, представляющий собой стандартный поток вывода данных. По умолчанию данные выводятся на экран. Для вывода данных на экран обычно используется оператор <<. Объявлен в заголовочном файле iostream.

  • ifstream - класс, предназначенный для чтения данных из файла. Объявлен в заголовочном файле f_stream_.

  • ofstream - класс, предназначенный для запись данных в файл. Объявлен в заголовочном файле f_stream_.

  • istringstream - класс, предназначенный для чтения данных из строки. Объявлен в заголовочном файле sstream.

  • ostringstream - класс, предназначенный для записи данных в файл. Объявлен в заголовочном файле sstream.

методы, определенные в классе istream (ifstream)

метод

синтаксис

пояснение

operator >>

оператор чтения данных из входного потока

get

int get(); istream& get ( char& c ); istream& get ( char* s, streamsize n ); istream& get ( char* s, streamsize n, char delim ); istream& get ( streambuf& sb); istream& get ( streambuf& sb, char delim );

считывание символа (символов) из потока.

getline

istream& getline (char* s, streamsize n); istream& getline (char* s, streamsize n, char delim );

чтение набора символов. символы читаются из потока до конца строки (символ '\n') или пока их количество не станет равно n.

peek

int peek ( );

читает символ из потока, но не извлекает его.

read

istream& read ( char* s, streamsize n );

читает блок данных из потока длины n в буфер s. Считанные данные не проверяются на наличие конца строки.

good

bool good ( ) const;

Проверка на состояние потока. Значение true возвращается при отсутствии ошибок потока.

eof

bool eof ( ) const;

Проверка на состояние потока. Значение true возвращается при достижении конца потока.

fail

bool fail ( ) const;

Проверка на состояние потока. Значение true возвращается при ошибке чтения-записи и логической ошибке операции ввода/вывода.

bad

bool bad ( ) const;

Проверка на состояние потока. Значение true возвращается при ошибке чтения-записи.

PreviousКонцепцииNextПримитивы, определённые в библиотеке STL

Last updated 2 years ago