Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_dlya_zashity_lab_raboty_8_po_potokovym_...docx
Скачиваний:
2
Добавлен:
16.09.2019
Размер:
239.96 Кб
Скачать

Вопросы для защиты лабораторной работы по потоковым классам

  1. Иерархия классов потоков ввода-вывода.

Для поддержки потоков в C++ стандартная библиотека содержит иерархию классов, построенную на основе двух базовых классов:

  • ios – базовый класс, содержащий общие для ввода/вывода поля и методы

  • streambuf – обеспечивает буферизацию потоков и их взаимодействие с физическими устройствами.

От этих базовых классов наследуются классы istream и ostream для входных и выходных потоков соответственно. Эти потоки являются базовыми для iostream, который позволяет реализовывать двунаправленные потоки. Ниже в иерархии находятся файловые и строковые потоки:

  • isstrinstream – класс входного строкового потока

  • osstringstream – класс выходного строкового потока

  • stringstream – класс двунаправленного строкового потока

  • ifsteam – класс входных файловых потоков

  • ofstream – класс выходных файловых потоков

  • fstream – класс двунаправленных файловых потоков

  1. Перечислить параметризованные манипуляторы потоков ввода-вывода. Заголовочные файлы классов потоков ввода-вывода.

setbase(int) – задает основание системы счисления;

resetiosflags(long) – сбрасывает флаги состояния поток, биты которых установлены в параметре.

setiosflags(long) – устанавливает флаги состояния потока биты которых в параметре равны единице.

setfill(int) – устанавливает символ заполнитель с кодом, равным значению параметра.

setprecision(int) – устанавливает максимальной количество цифр в дробной части для вещественных чисел в форме с фиксированной точкой, либо общее число значащих цифр для чисел в форме с мантиссой и порядком.

setw(int) – устанавливает максимальную ширину поля вывода.

<iostream.h> - Cтандартный потоки

(istream, ostream, iostream)

<fstream.h> - Файловые потоки

(ifstream(char *name, int mode = ios::in);

ofstream(char *name, int mode = ios::out);

fstream(char *name, int mode = ios::in [ios::out] );)

<sstream.h> - Строковые потоки

(explicit istringstream (int mode = ios::in);

explicit istringstream (const string &name, int mode = ios::in);

explicit ostringstream (int mode = ios::out);

explicit ostringstream (const string & name, int mode = ios::out);

explicit stringstream (int mode = ios::in | ios::out );

explicit stringstream (const strin &name, int mode = ios::in | ios::out);)

+<strstream.h> - форматированный ввод-вывод в память (похоже на обработку файлов, но операции ввода-вывода проводятся с символьными массивами, а не файлами).

(istrstream, ostrstream, strstream)

  1. Перечислить способы установки точности представления вещественных чисел в потоке вывода.

1) нет.

2) setprecision(int) – устанавливает максимальной количество цифр в дробной части для вещественных чисел в форме с фиксированной точкой, либо общее число значащих цифр для чисел в форме с мантиссой и порядком.

stream << setprecision(8);

3) int ios:: precision(int) - устанавливает значение точности представления при выводе вещественного числа и возвращает старое значение точности (меняет поле int x_precision – количество цифр в дробной части при выводе вещественных чисел с фиксированной точкой, либо общее количество значащих цифр при выводе числа с мантиссой и порядком.

stream.precision(8);

В потоковых классах форматирование данных можно осуществить тремя способами, а именно, с помощью:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]