>$ g++ -о prog1 prog1.cc
где >$
— это системное приглашение к вводу; >-о prog1
— аргумент компилятора и имя получаемого исполняемого файла. Данная команда создает исполняемый файл по имени >prog1
или >prog1.exe
, в зависимости от операционной системы. На операционной системе UNIX исполняемые файлы не имеют расширения, а в операционной системе Windows они имеют расширение >.exe
. Если пропустить аргумент >-о prog1
, то компилятор создаст исполняемый файл по имени >a.out
(на системе UNIX) или >a.exe
(на Windows). (Примечание: в зависимости от используемого выпуска компилятора GNU, возможно, понадобится добавить аргумент >-std=c++0x
, чтобы включить поддержку С++ 11.)
Для вызова компилятора Microsoft Visual Studio 2010 используется команда >c1
:
>С:\Users\me\Programs> cl /EHsc prog1.cpp
где >C:\Users\me\Programs>
— это системное приглашение к вводу; >\Users\me\Programs
— имя текущего каталога (или папки). Команда >cl
запускает компилятор, а параметр компилятора >/EHsc
включает стандартную обработку исключений. Компилятор Microsoft автоматически создает исполняемый файл с именем, которое соответствует первому имени файла исходного кода. У исполняемого файла будет суффикс >.exe
и то же имя, что и у файла исходного кода. В данном случае исполняемый файл получит имя >prog1.exe
.
Как правило, компиляторы способны предупреждать о проблемных конструкциях. Обычно эти возможности имеет смысл задействовать. Поэтому с компилятором GNU желательно использовать параметр >-Wall
, а с компиляторами Microsoft — параметр >/W4
.
Более подробная информация по этой теме содержится в руководстве программиста, прилагаемом к компилятору.
Упражнение 1.1. Просмотрите документацию по используемому компилятору и выясните, какое соглашение об именовании файлов он использует. Откомпилируйте и запустите на выполнение программу, функция >main()
которой приведена в разд. 1.1.
Упражнение 1.2. Измените код программы так, чтобы функция >main()
возвращала значение >-1
. Возвращение значения >-1
зачастую свидетельствует о сбое при выполнении программы. Перекомпилируйте и повторно запустите программу, чтобы увидеть, как используемая операционная система реагирует на свидетельство об отказе функции >main()
.
1.2. Первый взгляд на ввод-вывод
В самом языке С++ никаких операторов для ввода и вывода (Input/Output — IO) нет. Их предоставляет стандартная библиотека (standard library) наряду с обширным набором подобных средств. Однако для большинства задач, включая примеры этой книги, вполне достаточно изучить лишь несколько фундаментальных концепций и простых операций.
В большинстве примеров этой книги использована библиотека>iostream
. Ее основу составляют два типа, >istream
и >ostream
, которые представляют потоки ввода и вывода соответственно. Поток (stream) — это последовательность символов, записываемая или читаемая из устройства ввода-вывода некоторым способом. Термин "поток" подразумевает, что символы поступают и передаются последовательно на протяжении определенного времени.
В библиотеке определены четыре объекта ввода-вывода. Для осуществления ввода используется объект