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

1) Флагов;

2) Манипуляторов;

3) Форматирующих методов.

  1. Стандартные объекты классов потоков ввода- вывода.   

Объект

Класс

Описание

cin

istream

связывается с клавиатурой (со стандартным буфером ввода)

cout

ostream

связывается с экраном (со стандартным буфером вывода)

cerr

ostream

связывается с экраном (стандартный не буферизованный вывод, куда направляются сообщения об ошибках)

clog

ostream

связывается с экраном (стандартный буферизованный вывод, куда направляются сообщения об ошибках)

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

1) нет.

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

stream << setw(8);

3) int ios:: width(int) - устанавливает значение ширины поля ввода в соответствии с параметром. Действует только на один вывод.

int x_width – минимальная ширина поля ввода.

stream.width(8);

  1. Операторы форматного ввода-вывода в классах потоков.

Соответствующие операции << и >> определены в <iostream> путем перегрузки операции сдвига. Оператор вывода «<<» называется оператором вставки, потому что он вставляет символы в поток. Аналогично оператор ввода «>>» называется оператором извлечения, потому что он извлекает символы из потока.

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

1) нет.

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

stream << setfill(“a”);

3) char fill(char) - устанавливает значение текущего символа заполнения и возвращает старое значение символа.

stream.fill(“a”);

  1. Типы данных, для которых перегружены операторы форматного ввода-вывода.

Для встроенных типов. Кроме этого, можно перегрузить так, чтобы они выводили объекты классов, определенных пользователем.

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

1) stream.setf(ios::dec);

stream.setf(ios::oct);

stream.setf(ios::hex);

2) stream << dec;

stream << oct;

stream << hex;

3) нет.

  1. Декларации оператор-функций форматного ввода потоков.

Объявление:

istream &operator >>(istream&, <имя класса>&);

Определение:

istream &operator >>(istream &stream, <имя класса>& obj)

{//тело функции извлечения

return stream;

}

  1. (?)Перечислить функции форматного вывода данных в поток.

C: функции семейства printf: fprintf,vfprintf, printf, vprintf, sprintf, vsprintf, snprintf, vsnprintf.

  1. Как интерпретируется следующая инструкция форматного вывода cout<<i;

Осуществляется стандартный потоковый вывод на экран значения переменной i.

Операция чтения << в качестве результата своего выполнения формирует ссылку на объект типа ostream для чтения.

  1. Разновидности конструкторов классов файловых потоков ввода-вывода.

Каждый класс файловых потоков содержит конструкторы, с помощью которых можно создавать объекты этих классов различными способами. Конструкторы без параметров создают объект соответствующего класса, не связывая его с файлом. Конструктор с параметром создает объект соответствующего класса, открывает файл с указанным именем и связывает файл с объектом.

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

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

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

Вторым параметром конструктора является режим открытия файла. Если установленное по умолчанию значение не устраивает программиста, можно указать другой, составив его из битовых масок, определенных в классе ios.

in

= 0x01; //открыт для чтения

out

= 0x02; // открыт для записи

ate

= 0x04; // установить указатель на конец файла

app

= 0x08; // открыть на добавление в конец

trune

=0x19; // если файл существует, удалить

nocreate

= 0x20; // если файл не существует, выдать ошибку

noreplace

= 0x40; // если файл существует, выдать ошибку

binary

= 0x80; // открыть в двоичном режиме

  1. (?)Как интерпретируется следующая инструкция форматного ввода cin>> i >>j;

Осуществляется стандартный ввод с клавиатуры данных, запись символов в переменную i, далее происходит запись символов в переменную j. Если считываемые типы не соответствуют заявленным типам i и j, устанавливается бит failbit. При его установке все последующие операции с потоком данных игнорируются до тех пор, пока флаг failbit не будет сброшен программой

Операции извлечения в качестве результата своего выполнения формирует ссылку на объект типа istream для извлечения.

  1. Перечислить режимы ввода-вывода для файловых потоков.

Смотреть 13 вопрос(таблица)!

  1. Как интерпретируется следующая инструкция форматного вывода cout<<i<<j;

Осуществляется стандартный вывод на экран данных: значений i и j.

  1. Как открывать файловые потоки с анонимными конструкторами.

  1. Чем обеспечена возможность сцепления операций форматного ввода-вывода.

Многократные операции поместить в поток поместить в поток выполняются в той последовательности, в которой они записаны, т.е. операция поместить в поток имеет ассоциативность слева направо. Такой способ сцепления операций поместить в поток возможен, поскольку перегруженная операция << возвращает ссылку на объект своего левого операнда, т.е. на объект stream. Аналогично для операции взять из потока.

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

enum io_state { goodbit = 0x00, // никакие биты не установлены, все хорошо

eofbit = 0x01, // конец файла

failbit = 0x02, // ошибка в последней операции ввода/вывода

badbit = 0x04, // попытка выполнить неверную операцию

hardfail = 0x80 // неисправимая ошибка

};

  1. Какой приоритет имеют операции форматного ввода-вывода по сравнению с арифметическими и логическими операциями.

Так как приоритет и ассоциативность операций не могут быть изменены посредством перегрузки, приоритет операции форматного ввода-вывода ниже по сравнению с арифметическими операциями, но выше по сравнению с логическими.

  1. Перечислить функции контроля состояния потоков ввода-вывода.

1) iostate rdstate(); - возвращает текущее состояние флагов ошибок. Если никаких ошибок не обнаружено, возвращает goodbit, в противном случае устанавливает флаг ошибки.

*iostate – класс, является перечислением, определенным в классе ios.

2) bool bad();

bool eof();

bool fail();

bool good();

- установлен флаг – true.

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

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