Среды разработки
Для создания программы на C++ нам нужны, как минимум, две вещи: текстовый редактор для набора кода и компилятор для превращения этого кода в приложение. При этом для компиляции необходимо запускать консоль или терминал. Однако есть и более удобный способ — использование различных сред разработки или IDE. Они, как правило, содержит встроенный текстовый редактор, компилятор и позволяют скомпилировать и запустить программу по одному клику мыши, а также имеют еще множество разных вспомогательных возможностей.
Для программирования под Windows наиболее популярной средой разработки, если говорить о C++, является Visual Studio. Данную среду можно найти по ссылке https://visualstudio.microsoft.com/ru/vs/community/.
После загрузки и запуска установщика Visual Studio в нем необходимо отметить пункт Разработка классических приложений на C++ :

Выбрав все необходимые пункты, нажмем ОК для запуска установки. После установки Visual Studio создадим первый проект. Для этого откроем Visual Studio. На стартовом экране среди шаблонов проектов для языка C++ выберем тип Console App , который представляет шаблон консольного приложения:

На следующем экране в поле для имени проекта дадим проекту имя HelloApp и также можно указать расположение проекта. И затем нажмем на Create для создания проекта.

После этого Visual Studio создаст типовой проект консольного приложения на C++.

Справа в окне Solution Explorer отображается структура проекта. В реальности окно Solution Explorer содержит в решение. В данном случае оно называется HelloApp. Решение может содержать несколько проектов. По умолчанию у нас один проект, который имеет то же имя — HelloApp. В проекте есть ряд узлов:
- External Dependencies : отображает файлы, которые используются в файлах исходного кода, но не являются частью проекта
- Header Files : предназначена для хранения заголовочных файлов с расширением .h
- Resource Files : предназначена для хранения файлов ресурсов, например, изображений
- Source Files : хранит файлы с исходным кодом
По умолчанию каталог Source Files содержит один файл с исходным кодом — HelloApp.cpp ( название проекта + расширение файла .cpp — как правило, исходные файлы на C++ имеют расширение .сpp ).
HelloApp.cpp содержит код на языке C++, и именно этот код мы можем увидеть в слева в текстовом редакторе Visual Studio. По умолчанию HelloApp.cpp содержит следующий код:
#include // подключение модуля iostream int main() // определяем функцию main < // начало функции std::cout
Здесь использован весь тот код, который был рассмотрен в начальных темах.
Теперь запустим программу. Для этого в Visual Studio нажмем на сочетание клавиш Ctrl+F5 или выберем пункт меню Debug -> Start Without Debugging :

И в итоге Visual Studio передаст исходный код компилятору, который скомпилирует из кода исполняемый файл exe, который потом будет запущен на выполнение. И мы увидим на запущенной консоли наше сообщение:

После этого на жестком диске в папке решения в каталоге \x64\Debug скомпилированный файл exe, который мы можем запускать независимо от Visual Studio:

В данном случае файл HelloApp.exe как раз и представляет скомпилированный исполняемый файл. И, кроме того, в той же папке автоматически генерируется вспомогательный файл - HelloApp.pdb , который содержит отладочную информацию.
Настройка проекта
Для языка C++ есть несколько стандартов, каждый из которых добавляет некоторые дополнительные возможности. И Visual Studio позволяет задать стандарт, который будет использоваться при компиляции приложения. Для этого перейдем к свойствам проекта:

А в окне свойств перейдем к пункту Configuration Properties -> C/C++ -> Language . На открывшемся окне свойств с помощью опции C++ Language Standard можно задать стандарт языка, который мы хотим использовать:
Первая программа
Теги: Первая программа на си. Азы си. Си Borland. Си Code Gear. Си Embarcadero. Си MS Visual Studio. Си MS Express.
Пишем первую программу на си
Д ля начала, необходимо установить программное обеспечение. В принципе не важно, каким ПО вы будете пользоваться, также как не важна и операционная система. Но в течение всего курса я буду приводить примеры на MS Visula Studio 2012 Express Edition. Visual Studio 2012 Express Edition бесплатный и его за глаза хватит для изучения всего курса. Кроме того, как показала практика, он гораздо строже относится к коду и даёт более полноценное описание ошибок и предупреждений. При изучении языка можно использовать Borland (он же CodeGEAR, он же Embarcadero и т.д.), Dev Cpp, MinGW, или gcc, или что вы ещё захотите.
- Пример для Visual Studio
- Пример для Borland
- Пример для cc/gcc
- Код программы
Пример для MS Visual Studio
1. Открываем IDE, заходим Файл | Создать проект.
2. Выбираем консольное приложение и даём ему имя. В данном случае first_program
4. Ставим галочку "Пустой проект".
5. После чего получаем пустую структуру проекта. Добавим новый элемент: правый клик мыши по папке
"Файлы исходного кода" | Добавить | Создать элемент.
Добавляем новый cpp файл, но сохраняем его с расширением .c
Я назвал файл main.c Всё, готово, можно писать программу. Пропустите шаги для других платформ.
Borland
У меня установлен только Code Gear C++Builder 2007, но в остальных (и предыдущих) релизах всё делается также.
1. Создадим новый проект File | New | Other.
2. Добавляем консольное приложение
3. Выбираем язык си
4. Получаем готовый проект. Его необходимо сохранить с тем именем, которое захотите. До тех пор сам проект и все файлы будут иметь имена по умолчанию. Вы можете удалить то, что Borland по умолчанию прописал в тексте программы.
Пример для cc/gcc для терминала
О ткройте ваш любимый текстовый редактор и скопируйте туда код программы.
#include int main(int argc, char* argv[])
Если вы сохранили программу в файле с именем hello.c, то наберите в терминале команду
cc hello.c -o hello
либо
gcc hello -o hello
При этом, очевидно, вы должны находиться в папке с программой. gcc создаст исполняемый файл с именем hello. Запустите его, и он выведет Hello, World!
./hello
Иногда могут возникнуть проблемы с правами доступа. Проверьте, что у вас исполняемый файл, иначе дайте себе привелегии на запуск.
chmod 760 hello
Если у вас несколько файлов, то необходимо будет перечислить имена всех си файлов по порядку. Например, если у вас есть ещё два файла simple.h и simple.c, то нужно прописать
cc hello.c simple.c -o hello
Код программы
Принято в первой программе выводить Hello, World! на экран.
#include #include int main(int argc, char* argv[])
Запустите программу ( Run | Run или F9 для борланда, Построение | Построить решение или F5 для MS) Программа выведет Hello, World! и будет ждать, когда вы нажмёте на любую клавишу.
Рассмотрим код подробнее. Первые две строки
#include #include
директивы компилятору на подключение стандартных библиотек stdio (Standard Input Output - стандартная библиотека ввода вывода) и conio (Console Input Output - стандартная библиотека консоли вывода вывода). Расширение .h указывает, что это заголовочные файлы (header files). Компилятор копирует код библиотек conio и stdio, и даёт возможность использовать функции, описанные в этих библиотеках.
int main(int argc, char* argv[])
Это функция main. Она отличается от остальных функций, которые вы можете определить тем, что является точкой входа - с неё начинается выполнение программы.
Функция main имеет два параметра - число параметров argc и массив переданных параметров argv. Эти аргументы необязательные, поэтому можно их не писать. Об их использовании поговорим позже.
#include #include int main()
Функция main должна возвращать целое число. Если это 0, то функция отработала без ошибок. В современном стандарте си можно не возвращать 0, и описать функцию как void main.
#include #include void main()
Наша программа теперь выглядит совсем просто. Строка
printf("Hello, World!");
выводит строку Hello, World! на экран монитора.
_getch()
ожидает нажатия на клавишу.
Давайте сделаем что-нибудь посложнее, чтобы научиться добавлять новые файлы в программу. Сейчас для вас важно научиться добавлять новые файлы, если часть кода останется непонятной, это не беда.
1. Создайте новый заголовочный файл в папке "Заголовочные файлы", назовите его simple.h
2. Создайте новый файл simple.c в папке "Файлы исходного кода".
3. Добавьте в simple.h
#ifndef _SIMPLE_H_ #define _SIMPLE_H_ #include #include void doSomething(); #endif
Здесь мы объявили новую функцию doSomething. У неё отсутствует тело, оно будет описано в файле simple.c. Здесь же мы подключаем и библиотеки stdio и conio
Добавьте в simple .c
#include "simple.h" void doSomething()
Мы включаем в файл simple.c заголовочный файл. Он пишется в двойных кавычках, потому что это не файл из стандартной библиотеки. Файлы стандартной библиотеки обычно располагаются в папке include самой IDE. Если поместить туда наши файлы, то их тоже можно будет объявлять в угловых скобках. В двойных кавычках можно также прописывать абсолютные пути к файлам. Так как мы уже включили библиотеки conio и stdio в .h файле, то они "видны" и в .c файле.
Далее, в main.c
#include "simple.h" int main(int argc, char* argv[])
Мы подключаем только заголовочный файл. Содержимое simple.c будет добавлено автоматически. Собираем проект (F5 или F9, или что там у вас за среда. ) Если у вас всё заработало то отлично, вы научились добавлять новые файлы в проект.
ru-Cyrl 18- tutorial Sypachev S.S. 1989-04-14 sypachev_s_s@mail.ru Stepan Sypachev students

Всё ещё не понятно? – пиши вопросы на ящик
Создание первого приложения на C++
Программирование – процесс создания программ при помощи специальных языков. Первое приложение пользователь сможет написать относительно быстро.
Ниже мы создадим первую утилиту на языке C++. Он выбран как самый распространенный «метод создания программ». Широко применяется на практике и дает возможности создания игр, бизнес-решений, офисных утилит, а также виджетов для различных устройств. Главное – знать синтаксис и ключевые функции.
Термины
Перед тем, как писать первую программу на C, необходимо сначала запомнить ключевые понятия в программировании. Они пригодятся всем, кто изучает объектно-ориентированную парадигму.
Пока пользователь не запомнит следующие определения, писать код не имеет никакого смысла:
- Алгоритмы – правила и принципы, которые помогают решать поставленную перед программистом задачу.
- Программа – организованный набор инструкций, который при выполнении реализовывает функции.
- API – интерфейс прикладного программирования. Протоколы, процедуры и правила, необходимые для создания ПО. Помогают утилитам взаимодействовать с различными службами и софтом.
- Аргументы – значения, которые передаются в команды и имеющиеся функции.
- Булево – выражение, необходимое для операторов, работающих со значениями True и False.
- Символ – элементарная единица отображения информации.
- Объект – связанные переменные, константы, структурные единицы, которые могут совместно выбираться и проходить последующую обработку.
- Классы – наборы связанных объектов. У них есть общие свойства/параметры.
- Код – письменный набор инструкций, составленный на заданном ЯП с учетом имеющихся протоколов.
- Компиляция – создание исполняемой программы.
- Константа – значение, которое не будет меняться по ходу работы утилиты.
- Массив – сгруппированные списки или множества типов значений данных.
- Фреймворк – готовый набор блоков кода. Используется для ускорения разработки.
- Итерации – проходы через заданные наборы операций в приложении.
- Переменные – зарезервированные ячейки памяти. Основные компоненты, с которыми предстоит работать программисту.
- Ключевые слова – слова, зарезервированные ЯП для обозначения команд, функций и операций.
- Операнд – объект, которым удается управлять в первой программе на C (и последующем софте) через операторы.
- Оператор – объект, умеющий манипулировать операторами.
- Пакет – организованный модуль связанных между собой интерфейсов и классов.
Начало изучения процедуры написание первых утилит необходимо не только с «базовой» терминологии. Также стоит обратить внимание на то, как организовать работу. Программисту предстоит выбрать среду разработки, изучить соответствующий инструментарий. Синтаксис выбранного ЯП можно рассматривать постепенно.
Что нужно на первых порах
Начало написания первой программы будет происходить на примере Windows. Для успешного старта пользователю предстоит установить некоторые инструменты. А именно:
- Visual Studio;
- Dec C++ 5 версии;
- GCC компилятор – для тех, кто работает в системах типа Unix.
А еще клиенту необходимо обеспечить наличие любого текстового редактора. Пример – Vim. Без него первую утилиту создать окажется весьма проблематично. В Windows им может послужить как MS Office, так и обычный «Блокнот».
Написание
Начало программ и их составление – это изучение выбранного ЯП. Когда с синтаксисом пользователь уже разобрался, можно приступать к активным действиям. Ранее указанные инструменты устанавливают на задействованное устройство. Лишь после этого система будет готова к первым проектам.
Для VS
Чтобы программировать на C++ в Visual Studio, потребуется выполнить следующие действия:
- Для начала запустить среду разработки.
- Выбрать «Файл»-«Создать»-«Проект».
- Переключиться в категорию «Общие».
- Щелкнуть по надписи «Пустой…».
- Придумать название. Пример – Lesson1.
- Подтвердить действие.
На экране появится проект. В нем предстоит осуществлять дальнейшие действия. Если часть кода уже имеется на устройстве, можно загрузить ее и продолжить написание.
В обозревателе решений остается кликнуть ПКМ на папке «файлы исходного кода». Там – выбрать «Добавить»-«Создать элемент». Нужно сделать новый документ main.cpp и добавить его в разработку.
Для GCC
В случае с GCC действовать предстоит иначе. Пользователю необходимо создать пустой файл. Далее – открыть через любой текстовый редактор с подсветкой синтаксиса.
Код-пример
В самом начале рассмотрения C++ не нужно проектировать сложный контент. Вот пример кода, который будет реализовываться новичками:
Именно эту запись предстоит вставить в текстовый редактор или VS. При компиляции она образует самостоятельную утилиту.
Синтаксис
C++ обладает непростым синтаксисом. Он предусматривает множество нюансов и особенностей. Вот объяснение того, как функционирует программа, написанная выше:
- Директива #include отвечает за подключение других файлов в исполняемый код. Если там написано — происходит замена строчки на документ iostream.h. Это – стандартная библиотека языка. Отвечает за ввод и вывод.
- #include — еще одна стандартная библиотека. Она нужна для функционирования system.
- Using namespace std – указание на то, что клиент изначально будет использовать пространство имен с названием std. Все, написанное после int main() будет автоматически выполняться после запуска ПО.
- Count
В первой программе на C++ обычно изучают процесс вывода информации на экран. Count – основной оператор, который предстоит использовать. Текст, который хочется вывести на дисплей из командной строки, прописывается в двойных кавычках. End1 отвечает за перевод строчки уровнем ниже.
При завершении работы утилиты без сбоев происходит генерация кода ошибки, равного нулю. Return 0 требуется для передачи сообщения о том, что софт успешно обработан.
Запуск
Для того, чтобы у начинающих не возникло проблем с запуском первой программы на C++, требуется разобраться, как это сделать. В Visual Studio для этого можно задействовать сочетания Ctrl + F5. В GCC – выполнить такие команды:
Если код написан грамотно, он выведет на экран окно с приложением. В противном случае возникнет сообщение об ошибке.
Язык Си в примерах/Простейшая программа «Hello World»
Первая программа, которую мы рассмотрим, — это «Hello World» — программа, которая выведет на экран строку текста «Hello, World!» («Здравствуй, мир!») и закончит своё выполнение.
#include int main (void) puts ("Hello, World!"); return 0; >
Посмотрим на неё внимательно. Первая строка — #include — означает «включи заголовок stdio.h ». В этом заголовке объявляются функции, связанные с вводом и выводом данных. [1] [2]
Аббревиатуру stdio можно перевести как стандартный ввод-вывод (англ. standard input/output ). Буква «h» после точки означает заголовок (англ. header ). В заголовках (которые как правило представлены отдельными заголовочными файлами) обычно объявляются предоставляемые соответствующими им библиотеками функции, типы данных, константы и определения препроцессора. [3]
Далее идёт определение функции main . Оно начинается с объявления:
int main (void)
что значит: «функция с именем main , которая возвращает целое число (число типа int от англ. integer ) и у которой нет аргументов (void) »
В качестве варианта, стандарт допускает определение функции main как функции двух аргументов ( int argc и char *argv[] — имена, разумеется, могут быть произвольными), что используется для получения доступа к аргументам командной строки из программы. В данном случае, эта возможность не требуется, поэтому функция определена как безаргументная (что также явно разрешено стандартом.) [4]
Английское слово void можно перевести как «пустота». Далее открываются фигурные скобки и идёт тело функции, в конце фигурные скобки закрываются. Функция main — главная функция программы, именно с нее начинается выполнение программы.
Тело функции, в свою очередь, определяет последовательность действий, выполняемых данной функцией — логику функции. Наша функция выполняет одно единственное действие:
puts ("Hello, World!");
Это действие, в свою очередь, есть вызов функции puts стандартной библиотеки. [5] В результате выполнения этого вызова, на стандартный вывод (которым, скорее всего, окажется экран или окно на экране) печатается строка Hello, world! .
Затем идёт команда return 0; , которая завершает выполнение функции с возвратом значения 0, определяемого стандартом (для функции main ) как код успешного завершения. [6] [7]
Вариант «классический» [ править ]
Этот вариант отличается использованием функций printf (вместо puts ) и getchar .
#include int main (void) printf ("Hello, World!\n"); getchar (); return 0; >
В отличие от функции puts , выводящей переданную в качестве аргумента символьную строку, первый и обязательный аргумент функции printf определяет формат вывода. [8]
В общем случае, формат состоит из произвольного текста (не включающего символ % ) «перемешанного» с указателями преобразований (предваряемыми символом % ). В данном случае, однако, эта возможность не используется и никаких преобразований не выполняется.
Обратите внимание на появившуюся в строковой константе комбинацию \n — она включает в выводимую строку управляющий код (или управляющий символ) перевода (также разрыва или завершения) строки. В отличие от функции puts , всегда добавляющей этот код к выводимой строке, printf требует явного его указания.
Действующая редакция стандарта определяет семь таких комбинаций, причем все они записываются с помощью символа обратной косой черты \ (см. ASCII коды символов). [9]
Обратим внимание и на следующее новшество:
getchar ();
Окружение, в котором запускается программа, как правило можно настроить так, что вывод программы будет оставаться на экране после ее выполнения неограниченно долго. Проще всего это обеспечить вызывая программу из командного интерпретатора (который, в свою очередь, может быть запущен в окне эмулятора терминала) или (в зависимости от системы) окна Cmd.exe.
Однако, при запуске непосредственно из графического окружения, отведенное программе окно может закрыться сразу же после завершения программы. Функция getchar [10] ожидает ввод пользователя, тем самым «откладывая» завершение программы ( return ). Какие именно действия могут прервать это ожидание — зависит от системы, однако можно надеяться, что нажатие клавиши ⏎ Enter завершит эту функцию в любой системе.
В некоторых руководствах для этой же цели предлагается функция getch . Однако, эта функция (в отличие от getchar ) не является стандартной и, к тому же, зависима от платформы. Так, в некоторых системах использование getch требует включения файла curses.h и предшествующего вызова функции initscr . В других системах, однако, getch может быть объявлена в conio.h , и выполнение initscr — не требуется.
Вариант «экзотический» [ править ]
Наконец, рассмотрим следующий, выходящий за рамки стандарта, вариант этой программы.
#include int main (void) MessageBox (0, "Hello, World!", "Message", MB_OK); return 0; >
Использование заголовка windows.h может произвести впечатление приемлемости этого варианта кода в рамках только лишь одной конкретной системы. Однако, для использованного здесь интерфейса существует и независимая свободная реализация — Wine, — позволяющая собрать и выполнить данный вариант на таких системах, как, например, GNU/Linux, FreeBSD, Solaris и Mac OS X.
См. также [ править ]
Примечания [ править ]
- ↑ В действительности, #include <. >— это директива препроцессора, то есть команда, которая выполняется до начала компиляции файла. Смысл этой директивы очень прост и заключается в том, чтобы на место, где указана эта директива, вставить содержимое файла, имя которого указано в угловых скобках. Обычно заголовочные файлы содержат только прототипы функций, то есть просто список функций с указанием аргументов и типа возвращаемого значения.
- ↑6.10.2 Source file inclusion (англ.) WG14 N1570 Committee Draft. ISO/IEC (2011-04-12). Проверено 2012-11-19 г.
- ↑7.21 Input/output stdio.h (англ.) WG14 N1570 Committee Draft. ISO/IEC (2011-04-12). Проверено 2012-11-19 г.
- ↑5.1.2.2.1 Program startup (англ.) WG14 N1570 Committee Draft. ISO/IEC (2011-04-12). Проверено 2012-11-19 г.
- ↑7.21.7.9 The puts function (англ.) WG14 N1570 Committee Draft. ISO/IEC (2011-04-12). Проверено 2012-11-19 г.
- ↑5.1.2.2.3 Program termination (англ.) WG14 N1570 Committee Draft. ISO/IEC (2011-04-12). Проверено 2012-11-19 г.
- ↑7.22.4.4 The exit function (англ.) WG14 N1570 Committee Draft. ISO/IEC (2011-04-12). Проверено 2012-11-19 г.
- ↑7.21.6.1 The fprintf function (англ.) WG14 N1570 Committee Draft. ISO/IEC (2011-04-12). Проверено 2012-11-19 г.
- ↑5.2.2 Character display semantics (англ.) WG14 N1570 Committee Draft. ISO/IEC (2011-04-12). Проверено 2012-11-19 г.
- ↑7.21.7.6 The getchar function (англ.) WG14 N1570 Committee Draft. ISO/IEC (2011-04-12). Проверено 2012-11-19 г.
- Страницы с устаревшим атрибутом подсветки синтаксиса «enclose»
- Язык Си в примерах