Для
получения выполняемого кода написанная на C++ программа должна быть
скомпилирована; по своей сути процесс компиляции такой же, как и для
С, и в нём участвует большая часть входящих в последний программ.
Производятся чтение и анализ текста программы, и если не обнаружены
ошибки, то генерируется код.
Затем
программа проверяется на наличие имён и операций, которые использовались,
но не были определены (в нашем случае это cout и <<). Если это
возможно, то программа делается полной посредством дополнения недостающих
определений из библиотеки (есть стандартные библиотеки, и пользователи
могут создавать свои собственные). В нашем случае cout и <<
были описаны в stream.h, т. е. были указаны их типы, но не было дано
никаких подробностей относительно их реализации.
В стандартной
библиотеке содержатся спецификация пространства и инициализирующий
код для cout и <<. На самом деле, в этой библиотеке содержится
и много других вещей, часть из которых описана в stream.h, однако
к скомпилированной версии добавляется только подмножество библиотеки,
необходимое для того, чтобы сделать нашу программу полной [13].
Ввод
Функция
scanf() – функция форматированного ввода. С её помощью вы можете вводить
данные со стандартного устройства ввода (клавиатуры). Вводимыми данными
могут быть целые числа, числа с плавающей запятой, символы, строки
и указатели.
Функция
scanf() имеет следующий прототип в файле stdio.h:
int scanf(char *управляющая строка);
Функция
возвращает число переменных, которым было присвоено значение.
Управляющая
строка содержит три вида символов: спецификаторы формата, пробелы
и другие символы.
Спецификаторы
формата начинаются с символа %:
%c чтение символа
%d чтение десятичного целого
%i чтение десятичного целого
%e чтение числа типа float (плавающая запятая)
%h чтение short int
%o чтение восьмеричного числа
%s чтение строки
%x чтение шестнадцатеричного числа
%p чтение указателя
%n чтение указателя в увеличенном формате
При
вводе строки с помощью функции scanf() (спецификатор формата %s),
строка вводится до первого пробела, т. е. если вы вводите строку "Привет
информатик!" с использованием функции scanf()
Следующая
программа предлагает вам ввести число дюймов. После того, как вы это
сделаете, она напечатает соответствующее число сантиметров.
#include iostrem.h
main()
{ int i = 0; // i - дюйм
cin>>i;
cout << "дюймов ";
cout << " = ";
cout << i*2.54;
cout << " см\n"; }
Первая
строка функции main() описывает целую переменную i. Её значение считывается
с помощью операции >> («взять из») над стандартным потоком ввода
cin. Описания cin и >> находятся в iostrem.h. После её запуска
ваш терминал может выглядеть примерно так:
12 дюймов = 30.48 см
В этом
примере на каждую команду вывода приходится один оператор; это слишком
длинно. Операцию вывода << можно применять к её собственному
результату так, чтобы последние четыре команды вывода можно было записать
одним оператором:
cout << " дюймов =" << i*2.54 << "
см\n";