Меню
Разработки
Разработки  /  Информатика  /  Презентации  /  Прочее  /  Потоковые классы

Потоковые классы

Презентация используется на дополнительных курсах получения удостоверения по профессии Программист в ОПК СТИ НИТУ МИСиС

21.12.2017

Содержимое разработки

 Потоки – последовательности байт, связанные с файлом либо с устройством ввода / вывода.  Потоки по направлению обмена делятся на входные, выходные и двунаправленные.  По виду устройств, с которыми работает поток выделяют стандартные (передача от клавиатуры и на экран), файловые и строковые (работа с массивами символов).

Потоки – последовательности байт, связанные с файлом либо с устройством ввода / вывода.

Потоки по направлению обмена делятся на входные, выходные и двунаправленные.

По виду устройств, с которыми работает поток выделяют стандартные (передача от клавиатуры и на экран), файловые и строковые (работа с массивами символов).

IOS istream ostream iostream ifstream ofstream fstream

IOS

istream

ostream

iostream

ifstream

ofstream

fstream

 Определены в классе IOS  left/right, dec/oct/hex, uppercase, scientific/fixed и др.  Для установки имеется метод setf, для сброса – unsetf.  Пример:  cout.setf(ios::left);  cout  cout.unsetf(ios::left);

Определены в классе IOS

left/right, dec/oct/hex, uppercase, scientific/fixed и др.

Для установки имеется метод setf, для сброса – unsetf.

Пример:

cout.setf(ios::left);

cout

cout.unsetf(ios::left);

Методы класса IOS int ios::width() – возвращает значение ширины поля вывода ; int ios::width(int a) – устанавливает ширину поля вывода ; int ios::precision() – возвращает точности при выводе вещественных чисел ; int ios::width(int a) – устанавливает ширину поля вывода ; char ios::fill() – символ заполнения char ios::fill(char c) – установка символа заполнения

Методы класса IOS

int ios::width() – возвращает значение ширины поля вывода ;

int ios::width(int a) – устанавливает ширину поля вывода ;

int ios::precision() – возвращает точности при выводе вещественных чисел ;

int ios::width(int a) – устанавливает ширину поля вывода ;

char ios::fill() – символ заполнения

char ios::fill(char c) – установка символа заполнения

 Манипуляторы – функции, которые включаются в цепочки ввода и вывода для форматирования данных. Манипуляторы определены в заголовочном файле iomanip .  Основные манипуляторы endl/ends – символ новой строки/нулевой символ; dec/oct/hex – вывод чисел в десятичной/ восьмеричной/ шестнадцатиричной системе счисления; resetiosflags(long)/setiosflags(long) – сброс/ установка флагов; setw(int) – установка ширины вывода; setprecision(int) – установка количества цифр в дробной части вещественного числа; setfill(int) – установка символа-заполнителя.  Пример: cout

Манипуляторы – функции, которые включаются в цепочки ввода и вывода для форматирования данных. Манипуляторы определены в заголовочном файле iomanip .

Основные манипуляторы

  • endl/ends – символ новой строки/нулевой символ;
  • dec/oct/hex – вывод чисел в десятичной/ восьмеричной/ шестнадцатиричной системе счисления;
  • resetiosflags(long)/setiosflags(long) – сброс/ установка флагов;
  • setw(int) – установка ширины вывода;
  • setprecision(int) – установка количества цифр в дробной части вещественного числа;
  • setfill(int) – установка символа-заполнителя.

Пример: cout

- форматированный ввод данных всех типов get( с ) – считывает символ; get (buf, num, lim=’\n’) – считывает num -1 символ (или пока не встретится lim ) и копирует их в строку buf . Затем к строке дописывается символ ‘\0’. getline(buf, num, lim=’\n’) – аналогична get , но в строку копируется и символ lim . ignore(num=1,lim=EOF) – пропускает num символов . peek() – возвращает символ без удаления его из потока read(buf,num) – считывает num символов в строку buf ; readsome(buf,num) – аналогично read , но возвращает количество считанных символов; seekg(pos ) – устанавливает указатель чтения на pos ; tellg() – возвращает текущую позицию чтения потока " width="640"

Класс iostream

Содержит методы для ввода данных

- форматированный ввод данных всех типов

get( с ) – считывает символ;

get (buf, num, lim=’\n’) – считывает num -1 символ (или пока не встретится lim ) и копирует их в строку buf . Затем к строке дописывается символ ‘\0’.

getline(buf, num, lim=’\n’) – аналогична get , но в строку копируется и символ lim .

ignore(num=1,lim=EOF) – пропускает num символов .

peek() – возвращает символ без удаления его из потока

read(buf,num) – считывает num символов в строку buf ;

readsome(buf,num) – аналогично read , но возвращает количество считанных символов;

seekg(pos ) – устанавливает указатель чтения на pos ;

tellg() – возвращает текущую позицию чтения потока

Класс ostream  В классе ostream определены методы для вывода:  — форматированный вывод данных любых типов flush() — записывает содержимое потока вывода на физическое устройство; put (с) — выводит в поток символ с и возвращает ссылку на поток; seekp(pos) — устанавливает текущую позицию записи в значение pos ; seekp(offs, org) — перемещает текущую позицию записи на offs байтов, считая от одной из трех позиций, определяемых параметром org : ios :: beg (от начала файла), 1 os :: cur (от текущей позиции) или ios : : end (от конца файла); tellp()— возвращает текущую позицию записи потока; write(buf, num) — записывает в поток num символов из массива buf и возвращает ссылку на поток.

Класс ostream

В классе ostream определены методы для вывода:

— форматированный вывод данных любых типов

flush() — записывает содержимое потока вывода на физическое устройство;

put (с) — выводит в поток символ с и возвращает ссылку на поток;

seekp(pos) — устанавливает текущую позицию записи в значение pos ;

seekp(offs, org) — перемещает текущую позицию записи на offs байтов, считая от одной из трех позиций, определяемых параметром org : ios :: beg (от начала файла), 1 os :: cur (от текущей позиции) или ios : : end (от конца файла);

tellp()— возвращает текущую позицию записи потока;

write(buf, num) — записывает в поток num символов из массива buf и возвращает ссылку на поток.

cin – ввод cout – вывод cerr – вывод сообщений об ошибках clog – вывод в журнал cerr и clog всегда выводят на экран, но первый не использует буфер вывода.

cin – ввод

cout – вывод

cerr – вывод сообщений об ошибках

clog – вывод в журнал

cerr и clog всегда выводят на экран, но первый не использует буфер вывода.

В базовом классе ios определено поле state , которое представляет собой состояние потока в виде совокупности битов: enum io_state { goodbit = 0x00, eofbit = 0x01. failbit = 0x02, badbit = 0x04, hardfail = 0x08 }; int rdstate () — возвращает текущее состояние потока; int eof () — возвращает ненулевое значение, если установлен флаг eofbit ; int fall () — возвращает ненулевое значение, если установлен один из флагов failbit , badbit или hardfail ; int bad () — возвращает ненулевое значение, если установлен один из флагов badbit или hardfail ; int good () — возвращает ненулевое значение, если сброшены все флаги ошибок; void clear ( int = 0) — параметр принимается в качестве состояния ошибки, при отсутствии параметра состояние ошибки устанавливается 0; operator void *() — возвращает нулевой указатель, если установлен хотя бы один бит ошибки; operator ! () — возвращает ненулевой указатель, если установлен хотя бы один бит ошибки.

В базовом классе ios определено поле state , которое представляет собой состояние потока в виде совокупности битов:

enum io_state {

goodbit = 0x00, eofbit = 0x01. failbit = 0x02, badbit = 0x04,

hardfail = 0x08 };

int rdstate () — возвращает текущее состояние потока;

int eof () — возвращает ненулевое значение, если установлен флаг eofbit ;

int fall () — возвращает ненулевое значение, если установлен один из флагов failbit , badbit или hardfail ;

int bad () — возвращает ненулевое значение, если установлен один из флагов badbit или hardfail ;

int good () — возвращает ненулевое значение, если сброшены все флаги ошибок;

void clear ( int = 0) — параметр принимается в качестве состояния ошибки, при отсутствии параметра состояние ошибки устанавливается 0;

operator void *() — возвращает нулевой указатель, если установлен хотя бы один бит ошибки;

operator ! () — возвращает ненулевой указатель, если установлен хотя бы один бит ошибки.

x) {} " width="640"

// Проверка флага

if (cin.rdstate() & ios::failbit) …

// Сбросить флаг

cin.rdstate(cin.rdstate() & ~ios::failbit)…

// Установить флаг

cin.rdstate(cin.rdstate() | ios::failbit)…

// проверка состояния потока

while (cin x) {}

 ifstream – входной, ofstream – выходной, fstream – двунаправленный.  Потоковые классы имеют конструктор без параметров, который создает объект не связывая его с файлом и конструктор с двумя параметрами:  fstream (const char* name, int mode) открывающий файл с именем name в режиме mode . Если режим не указан, то файлы откроются по умолчанию в текстовом режиме.

ifstream – входной, ofstream – выходной, fstream – двунаправленный.

Потоковые классы имеют конструктор без параметров, который создает объект не связывая его с файлом и конструктор с двумя параметрами: fstream (const char* name, int mode) открывающий файл с именем name в режиме mode . Если режим не указан, то файлы откроются по умолчанию в текстовом режиме.

Режим задается битовыми масками, заданными в классе ios .  ios :: in – открыть для чтения,  ios::out - открыть для записи,  ios::ate – встать в конец файла,  ios::app – открыть файл для добавления,  ios::trunc – удалить файл, если он существует,  ios::nocreate – не создавать файл,  ios::noreplace – не перезаписывать файл,  ios::binary – двоичный режим.  Например  fstream f(“input.txt”, ios::in|ios::binary); открывает файл для чтения в двоичном режиме.  Для открытия файла можно использовать метод open с параметрами как у соответствующего конструктора. Закрывается файл методом close () или автоматически при вызове деструктора.

Режим задается битовыми масками, заданными в классе ios .

ios :: in – открыть для чтения,

ios::out - открыть для записи,

ios::ate – встать в конец файла,

ios::app – открыть файл для добавления,

ios::trunc – удалить файл, если он существует,

ios::nocreate – не создавать файл,

ios::noreplace – не перезаписывать файл,

ios::binary – двоичный режим.

Например

fstream f(“input.txt”, ios::in|ios::binary); открывает файл для чтения в двоичном режиме.

Для открытия файла можно использовать метод open с параметрами как у соответствующего конструктора. Закрывается файл методом close () или автоматически при вызове деструктора.

=0; i--) out return out; } } " width="640"

class stack {

friend ostream& operator

{ for (int i = s.top-1; i=0; i--)

out

return out;

}

}

 Стандартная библиотека C++ включает тип string (строки) в модуле string.  Класс string автоматически управляет памятью для строк, определяет большое количество удобных операций и методов.

Стандартная библиотека C++ включает тип string (строки) в модуле string.

Класс string автоматически управляет памятью для строк, определяет большое количество удобных операций и методов.

string() string( const char*) string (string&) string s1,s2,s3=

string()

string( const char*)

string (string&)

string s1,s2,s3="Hi!";

s1="Hello";

s2=s1;

, =, [] индексация символов " width="640"

= присваивание

+ , += сцепление строк

, =,

[] индексация символов

length(), size() – длина строки max_size() – максимальная длина строки capacity() – объем памяти, занимаемый строкой empty() - истина, если строка пустая

length(), size() – длина строки

max_size() – максимальная длина строки

capacity() – объем памяти, занимаемый строкой

empty() - истина, если строка пустая

Присваивание строки или части строки assign(const string& s) assign(const string& s, int pos, int n) assign(const char *s, int n) Добавление строки или части строки append(const string& s) append(const string& s, int pos, int n) append(const char *s, int n)

Присваивание строки или части строки

assign(const string& s)

assign(const string& s, int pos, int n)

assign(const char *s, int n)

Добавление строки или части строки

append(const string& s)

append(const string& s, int pos, int n)

append(const char *s, int n)

Вставка строки или части строки insert( int pos1, const string &s) insert( int pos1, const string &s, int pos2, int n) insert( int pos, const char *s, int n) Удаление части строки erase (int pos = 0, int n = npos) Очистка строки clear()

Вставка строки или части строки

insert( int pos1, const string &s)

insert( int pos1, const string &s, int pos2, int n)

insert( int pos, const char *s, int n)

Удаление части строки

erase (int pos = 0, int n = npos)

Очистка строки

clear()

Замена части строки replace ( int pos1, int n1, const string& s) replace ( int pos1, int n1, const string& s, int pos2, int n2) replace ( int pos1, int n1, const char* s, int n2) Обмен строк swap (string &s) Выделение части строки string substr (int pos = 0, int n = npos) Преобразование строки в char* char* c_str ()

Замена части строки

replace ( int pos1, int n1, const string& s)

replace ( int pos1, int n1, const string& s, int pos2, int n2)

replace ( int pos1, int n1, const char* s, int n2)

Обмен строк

swap (string &s)

Выделение части строки

string substr (int pos = 0, int n = npos)

Преобразование строки в char*

char* c_str ()

int find( const string&s, int pos = 0) – левое вхождение int rfind( const string&s, int pos = npos) – правое вхождение int compare (const string&s) int compare (int pos1, int n1, const string&s) int compare (int pos1, int n1, const string&s, int pos2, int n2)

int find( const string&s, int pos = 0) – левое вхождение

int rfind( const string&s, int pos = npos) – правое вхождение

int compare (const string&s)

int compare (int pos1, int n1, const string&s)

int compare (int pos1, int n1, const string&s, int pos2, int n2)

-80%
Курсы дополнительного образования

Создание динамических веб-страниц с помощью PHP и MySQL

Продолжительность 72 часа
Документ: Cвидетельство о прохождении курса
4000 руб.
800 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Потоковые классы (122 KB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт

Вы смотрели