Ввод-вывод данных
Под потоком данных понимается абстракция, представляющая некоторое устройство ввода или вывода. Чаще всего поток представляется бесконечной последовательностью символов, в которую можно записывать символы или извлекать символы из неё. Потоки обычно ассоциируются с физическим устройством или источником символов: клавиатурой, мышью, файлом и т.д.
Стандартная библиотека С++ включает в себя библиотеку, предназначенную для работы с потоками данных – 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 возвращается при ошибке чтения-записи. |
Last updated