
- •618 Глава 10
- •620 Глава 10
- •Глава 10
- •624 Глава 10
- •626 Глава 10
- •630 Глава 11 План
- •11.3. Вывод потоков
- •11.4. Ввод потоков
- •11.7. Состояния формата потоков
- •11.10. Связывание выходного потока с входным
- •11.1. Введение
- •632 Глава 11
- •11.2. Потоки
- •11.2.1. Заголовочные файлы библиотеки iostream
- •11.2.2. Классы и объекты потоков ввода-вывода
- •634 Глава 11
- •11.3. Вывод потоков
- •11.3.1. Операция поместить в поток
- •636 _ Глава 11
- •47 Плюс 53 равняется 100
- •11.3.2. Сцепление операций поместить в поток и взять из потока
- •47 Плюс 53 равняется 100
- •638 _ Глава 11
- •11.3.3. Вывод переменных типа char *
- •11.3.4. Вывод символов с помощью функции-элемента put; сцепленные выводы
- •11.4. Ввод потоков
- •11.4.1. Операция взять из потока
- •640 _ Глава 11
- •7 Не равно 5
- •8 Равно 8
- •11.4.2. Функции-элементы get и getline
- •642 Глава 11
- •644 Глава 11
- •11.4.3. Другие функции-элементы класса istream (peek, putback, ignore)
- •11.4.4. Сохранение типов данных при вводе-выводе
- •11.5. Неформатированный ввод-вывод с использованием read, gcount и write
- •11.6. Манипуляторы потоков
- •646 _ Глава 11
- •11.6.1. Манипуляторы потоков dec, oct, hex и setbase, задающие основание чисел
- •11.6.2. Точность чисел с плавающей запятой (precision,
- •11.6.3. Ширина поля (setw, width)
- •648 Глава 11
- •650 Глава 11
- •11.6.4. Манипуляторы, определяемые пользователем
- •11.7. Состояния формата потоков
- •11.7.1. Флаги состояний формата
- •Глава 11
- •11.7.2. Нулевые младшие разряды и десятичные точки
- •11.7.3. Выравнивание (ios::left, ios::right, ios::internal)
- •654 Глава 11
- •11.7.4. Заполнение (fill, setfill)
- •10000 Напечатанное как целое с выравниванием right и left и как шестнадцатеричное с выравниванием internal Использование заполняющего символа по умолчанию (пробела)
- •656 Глава 11
- •11.7.5. Основание системы счисления (ios::dec, ios::oct, ios::hex,
- •11.7.6. Числа с плавающей запятой; экспоненциальный формат (ios::scientific, ios::fixed)
- •658 Глава 11
- •11.7.7. Управление выводом в нижнем и верхнем регистрах
- •11.7.8. Установка и сброс флагов формата (flags, setiosflags
- •11.8. Состояния ошибок потока
- •11.9. Ввод-вывод определенных пользователем типов данных
- •Глава 11
- •После cin.Clear():
- •664 Глава 11
- •11.10. Связывание выходного потока с входным
- •Глава 11
- •Глава 11
- •670 Глава 11
- •672 Глава 11
- •674 Глава 11
- •676 Глава 11
- •1) Неверно. Поток cin связан со стандартным устройством ввода компьютера, обычно с клавиатурой.
- •0) Верно.
- •678 Глава 11
- •680 Глава 11
- •684 Глава 12
- •12.2. Шаблоны функций
- •686 Глава 12
- •Глава 12
- •12.3. Перегрузка шаблонных функций
- •12.4. Шаблоны классов
- •Глава 12
- •692 Глава 12
- •694 Глава 12
- •12.5. Шаблоны классов и нетиповые параметры
- •12.6. Шаблоны и наследование
- •12.7. Шаблоны и друзья
- •696 Глава 12
- •12.8. Шаблоны и статические элементы
- •Глава 12
- •700 Глава 12
- •702 Глава 12
- •704 Глава 13 План
- •13.1. Введение
- •706 Глава 13
- •708 Глава 13
- •13.2. Когда должна использоваться обработка исключений
- •13.3. Другие методы обработки ошибок
- •710 Глава 13
- •13.5. Простой пример обработки исключений: деление на нуль
- •712 Глава 13
- •13.6. Блоки try
- •13.7. Генерация исключений
- •714 Глава 13
- •13.8. Перехват исключений
- •716 Глава 13
- •718 Глава 13
- •13.9. Повторная генерация исключений
674 Глава 11
ров ссылку на istream, ссылку на определенный пользователем тип и возвращает ссылку на istream.
g) При вводе с помощью операции взять из потока » всегда происходит пропуск ведущих (начальных) символов разделителей во входном потоке.
h) Средства ввода-вывода — это составная часть С++.
i) Функция-элемент потока rdstate() возвращает состояние текущего потока.
j) Поток класса cout обычно связан с дисплеем.
k) Функция-элемент потока good() возвращает true, если все функции-элементы bad(), fail() и eof() возвращают false.
1) Поток класса cin обычно связан с экраном дисплея.
m) Если при операциях с потоком возникают неисправимые ошибки, функция-элемент bad возвращает true.
n) Вывод в cerr является небуферизованным, а вывод в clog является буферизованным.
0) Когда установлен флаг ios::showpoint, числа с плавающей запятой печатаются по умолчанию с точностью в шесть разрядов или печа таются с заданной точностью.
p) Функция-элемент put класса ostream выводит заданное число символов.
q) Манипуляторы потока dec, oct и hex оказывают воздействие только на следующую операцию вывода целого числа.
r) Адреса памяти при выводе отображаются по умолчанию как целые типа long.
11.3. Напишите по одному оператору, решающему следующие задачи:
Выведите строку "Введите ваше имя: ".
Установите флаг для вывода в верхнем регистре чисел в экспо ненциальном формате и букв в шестнадцатеричном формате.
Выведите адрес переменной string типа char *.
Установите флаг печати чисел с плавающей запятой в экспоне нциальном формате.
Выведите адрес переменной integerPrt типа int *.
Установите такой флаг, чтобы при выводе целых чисел на дисплее отображалось их основание при представлении в восьмеричном и шестнадцатеричном форматах.
g) Выведите значение типа float, на которое указывает floatPtr.
h) Используйте функцию-элемент потока, чтобы установить символ '*' в качестве заполняющего символа для печати с шириной поля, превышающей требуемую для печатаемого значения. Напишите отдельный оператор чтобы сделать то же самое с помощью манипулятора потока.
1) Выведите символы 'O' и 'K' одним оператором с помощью функ ции put класса ostream.
Потоки ввода-вывода в С++ 675
j) Получите следующий символ из входного потока не удаляя его из потока.
k) Введите один символ в переменную с типа char с помощью функции-элемента get класса istream двумя различными способами.
1) Введите и отбросьте очередные шесть символов из входного потока.
m) Используйте функцию-элемент read класса istream для ввода 50 символов в массив line типа char.
n) Прочтите 10 символов в массив name. Прекратите чтение, если в потоке появится ограничитель '.'. Не удаляйте ограничитель из входного потока. Напишите другой оператор, который выполняет ту же задачу, но удаляет ограничитель из входного потока.
о) Используйте функцию-элемент gcount класса istream для определения количества символов, введенных в символьный массив line последним вызовом функции-элемента read класса istream, и выведите это число символов, используя функцию-элемент write класса ostream.
p) Напишите отдельные операторы для сброса выходного потока, использующие функцию-элемент и манипулятор потока.
q) Выведите следующие значения: 124, 18.376, 'Z', 1000000 и "Строка".
r) Напечатайте текущую установку точности с помощью функции-элемента.
s) Введите целое число в переменную months типа int и число с плавающей запятой в переменную percentageRate типа float.
t) Напечатайте 1.92, 1.925 и 1.9258 с точностью в три разряда, используя манипулятор.
u) Напечатайте целое число 100 в восьмеричном, шестнадцатерич-ном и десятичном форматах с помощью манипуляторов потока.
v) Напечатайте целое число 100 в десятичном, восьмеричном и шест-надцатеричном форматах, используя единственный манипулятор потока для изменения основания.
w) Напечатайте 1234 с выравниванием по правой границе поля шириной 10 разрядов.
x) Читайте символы в массив line до появления символа 'z' но не более 20 символов (включая и завершающий нулевой символ). Не удаляйте символ ограничитель из потока.
у) Используйте целые переменные x и у, чтобы задать ширину поля и точность используемые для отображения значения 87.4573 типа double и выведите это значение на экран.
11.4. Найдите ошибку в каждом их приведенных ниже операторов и объясните, как ее можно исправить.
cout « "Значение x <= у равно:" « x <= у;
Следующий оператор должен печатать целое значение 'c'.
cout « 'c';