Программирование. Принципы и практика использования C++ Исправленное издание, стр. 165
• доказать, что это решение можно найти с помощью вполне доступных средств;
• описать простое решение простой задачи;
• продемонстрировать разницу между интерфейсом и реализацией.
Этот пример можно сравнить с уроком, на котором учитель английского языка для иностранцев произносит выражения на сленге, чтобы показать его колорит и живость.
11.8. И еще много чего
12.3512,35Другим источником сложностей является буферизация; стандартные библиотечные потоки
iostreamstreambufiostreamstreambufiostream iostreamПри программировании на языке С++ вы можете обнаружить семейство стандартных функций ввода-вывода
printf()scanf()Стандартная библиотека ввода-вывода описана в приложении Б, а связанные с ней графические пользовательские интерфейсы — в главах 12–16.
Задание
1. Напишите программу с именем
Test_output.cppbirth_year2. Выведите переменную
birth_year3. Выведите основание системы счисления для каждого числа.
4. Выровняли ли вы результаты по столбцам с помощью символа табуляции? Если нет, то сделайте это.
5. Теперь выведите год вашего рождения.
6. Были ли какие-то проблемы? Что произошло? Замените ваш вывод на десятичный.
7. Вернитесь к упр. 2 и выведите основание системы счисления для каждого числа.
8. Попытайтесь прочитать данные как восьмеричные, шестнадцатеричные и т.д.
cin >> a >>oct >> b >> hex >> c >> d;cout << a << '\t'<< b << '\t'<< c << '\t'<< d << '\n' ;Запустите программу со следующими входными данными:
1234 1234 1234 1234Объясните результаты.
9. Напишите программу, три раза выводящую на печать число
1234567.89:generalfixedscientific10. Создайте простую таблицу, содержащую фамилию, имя, телефонный номер и адрес электронной почты хотя бы пяти ваших друзей. Поэкспериментируйте с разной шириной полей, пока не найдете приемлемый.
Контрольные вопросы
1. Почему ввод-вывод является сложной задачей для программиста?
2. Что означает выражение
<< hex3. Какие шестнадцатеричные числа используются в компьютерных науках? Почему?
4. Перечислите несколько возможностей, которые вы хотели бы реализовать при форматировании вывода целых чисел.
5. Что такое манипулятор?
6. Назовите префикс десятичного, восьмеричного и шестнадцатеричного числа.
7. Какой формат по умолчанию применяется при выводе чисел с плавающей точкой?
8. Что такое поле вывода?
9. Объясните, что делают функции
setprecision()setw()10. Для чего нужны разные режимы при открытии файлов?
11. Какие из перечисленных далее манипуляторов не являются инертными:
hexscientificsetprecisionshowbasesetw12. Укажите разницу между символьным и двоичным вводом.
13. Приведите пример, демонстрирующий преимущество использования двоичного файла вместо текстового.
14. Приведите два примера, в которых может оказаться полезным класс
stringstream15. Что такое позиция в файле?
16. Что произойдет, если позиция в файле будет установлена за его пределами?
17. Когда ввод строк предпочтительнее, чем ввод, ориентированный на тип?
18. Что делает функция
isalnum(c)Термины

Упражнения
1. Напишите программу, вводящую текстовый файл и записывающую его содержимое в новый файл, используя нижний регистр.
2. Напишите программу, удаляющую из файла все гласные буквы. Например, фраза
Once upon a time!nc pn tm!