Скачиваний:
46
Добавлен:
15.09.2014
Размер:
877.06 Кб
Скачать

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. Напишите по одному оператору, решающему следующие задачи:

  1. Выведите строку "Введите ваше имя: ".

  2. Установите флаг для вывода в верхнем регистре чисел в экспо­ ненциальном формате и букв в шестнадцатеричном формате.

  3. Выведите адрес переменной string типа char *.

  4. Установите флаг печати чисел с плавающей запятой в экспоне­ нциальном формате.

  5. Выведите адрес переменной integerPrt типа int *.

  6. Установите такой флаг, чтобы при выводе целых чисел на дисплее отображалось их основание при представлении в восьмеричном и шестнадцатеричном форматах.

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. Найдите ошибку в каждом их приведенных ниже операторов и объ­ясните, как ее можно исправить.

  1. cout « "Значение x <= у равно:" « x <= у;

  2. Следующий оператор должен печатать целое значение 'c'.

cout « 'c';