Old Programmer
5188 subscribers

Язык программирования C++. Стандартные библиотеки (статья 1, библиотека iostream)

189 full reads

Весь мой канал Old Programmer здесь:

А здесь все мои ресурсы по языкам C и C++.

У меня было много статей на канале по объектному программированию на языке C++. Правда раза два в комментариях меня упрекали, что это не настоящий C++. Аргумент был такой: я использую библиотеки Си, а не C++. Т.е. получается, что я пишу вроде на обычном Си, но с объектами. Я, конечно, возразил, что это все это поддерживается C++, и компилирую я компилятором C++. Но потом подумал, что у C++ есть свой родной набор библиотек, которые входят в стандарт. Так почему бы и о них не написать. Поэтому решил такую серию статей сделать по стандартным библиотекам C++.

Библиотека iostream языка программирования C++

Библиотека iostream предназначена для работа со стандартным вводом-выводом. Поэтому она часто используется. Ну, фактически, она является заменителем набора функций и констант из stdio.h языка C.

Сегодня познакомимся с основами ввода-вывода с помощью средств данной библиотеки. А в следующих статьях продолжим изучение и рассмотрим более сложные примеры. Нужно сказать, что описываемая библиотека C++ по началу будет не привычна, хотя в значительной степени она базируется на понятиях, которые использует классический C.

Нужно сказать, что iostream базируется на четырех объектах: cin, cout, cerr, clog. Эти объекты соответствуют трем стандартным потокам, которые используются в языке C: stdin, stdout, stderr. cerr и clog соответствуют потоку stderr, но clog буферизуется, а cerr - нет.

Рассмотрим очень простую программу cpp1.cpp, которая выводит на стандартное устройство (монитор) строковые константы и числа.

Результат выполнения программы

Вывод средствами стандартной библиотеки C++
Число:864466 его квадрат:747301465156

Несколько, пояснений к программе cpp1.cpp.

  1. Прежде всего обращу внимание на директиву using namespace std, которая определяет пространство имен для стандартных библиотек C++. Пространство имен позволяет несколько сократить программу. В противном случае нам вместо, например, cout нужно было бы писать std::cout, и т.д.
  2. Мы видим, что в библиотеке перегружены операторы '<<', которые указывают на "направление" стандартного вывода. Если внимательно присмотреться, нам станет понятно, что cout в значительной степени является объектным аналогом функции printf(). В дальнейшем мы убедимся, что его также можно настраивать на форматный вывод информации.
  3. Вывод с помощью cout также чувствителен к управляющим символам. Например мы использовали управляющий символ '\n'. Однако вместо этого управляющего символа можно использовать и манипулятор endl - манипулятор конца строки.

Познакомившись так на простом примере с форматным выводом на основе стандартной библиотеки C++ обратимся к примеру форматного ввода.

Объект cin работает с перегруженным оператором '>>' (см. cpp2.cpp).

Программа cpp2.cpp определяет максимальное из трех чисел. Для ввода значений для трех переменных м использовали объект cin. В отличие, например, от функции scanf() он обращается не с указателями, а самими переменными.

Пример использования объекта cin в программе cpp2.cpp довольно прост. Но нужно сказать, что с объектом cin не все так просто. Мы будем разбираться с ним в следующей статье, ну и продолжим изучать cout.

Продолжение следует...

Пока, любители великого и ужасного языка C++. Подписываемся на мой канал Old Programmer.

Программа cpp2.cpp
Программа cpp2.cpp

#программирование #программисты #c++ #си #языки программирования