Создание первого приложения на 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 – выполнить такие команды:
Если код написан грамотно, он выведет на экран окно с приложением. В противном случае возникнет сообщение об ошибке.
Язык программирования C++: разбираемся и пишем простую программу

Разбираемся, кому и для чего подходит C++, какие инструменты для работы с ним самые востребованные. Устанавливаем и настраиваем базовые инструменты, а также пробуем написать и запустить простую программу. В конце статьи — список полезных ресурсов для новичков, которые помогут понять, насколько вам подходит язык.

«IT-специалист с нуля» — наш лучший курс для старта в IT
Кто создал C++

Билл Гейтс начал программировать в школьные годы, обучаясь в привилегированной школе. Марк Цукерберг в десять лет получил в подарок компьютер и начал изучать программирование. У автора языка C++ Бьерна Страуструпа старт не был блестящим. Его родители были бедны. Он учился в худшей школе города. Он не знал, в какой области развиваться. Страуструп как-то признался, что попал на курс информатики в университете по ошибке, перепутав его с математикой. Ошибка стала большим везением как для самого Бьерна, так и для множества программистов со всего мира. Нажмите кнопку «Run» — зеленую со стрелочкой слева вверху. В нижней части экрана увидите результат — сообщение «Hello, world!».
Работа с C++ на локальном компьютере
Устанавливаем и проверяем компилятор
Согласно опросу Jetbrains, самый популярный набор компиляторов для разных операционных систем — GCC с компилятором g++ для языка C++. Воспользуемся пакетом средств для разработки MSYS2, который включает GCC. Скачаем и запустим msys2-x86_64-20230718.exe:
Выбираем флажки для меню Пуск, и пакет устанавливается. Когда установка закончится, запустится консоль MSYS2.exe, если такой пункт был выбран. Можно запустить usrt_64.exe из папки указанного при установке каталога. Чтобы установить набор компиляторов GCC, наберем в консоли команду pacman -S mingw-w64-x86_64-gcc. Пакетный менеджер начнет устанавливать пакет компиляторов. Не забудьте ответить Y на запрос:
Желательно сразу установить отладчик. Для этого набираем в консоли MSYS2 команду pacman -S mingw-w64-x86_64-gdb и также отвечаем Y. Теперь в каталоге C:\msys64\ucrt64\bin есть файл компилятора g++.exe. Добавляем путь к нему в Переменные среды. В окне поиска в Windows вводим «изменение переменных среды» .
Изменяем переменную Path: добавляем путь C:\msys64\ucrt64\bin. Теперь мы сможем скомпилировать и запустить программу на C++. Создаем файл hello.cpp с текстом нашей программы из прошлого раздела в любом текстовом редакторе:
#include using namespace std; int main()

Помещаем его в папку C:\HELLO_CPP. Осталось скомпилировать. Открываем командную строку Windows. Для этого можно ввести текст «командная строка» в окне поиска в Windows. Переходим в нужную папку с помощью команды cd C:\HELLO_CPP и запускаем компиляцию g++ hello.cpp -o hello. В первом параметре указан файл с кодом, который надо скомпилировать. У нас получилось готовое приложение, можно его запускать. Набираем hello. Программа работает!
Выбираем среду для разработки на C++

Конечно, набирать весь код в обычном текстовом редакторе и вручную компилировать и запускать неудобно. Потребуется специальное ПО для разработки. Спор между сторонниками редакторов кода и IDE не разрешен. Использование редактора более соответствует философии C++, где все контролирует программист. Также встречается мнение, что редактор больше подходит для обучения, позволяет вникнуть в детали. В интернете много обзоров редакторов кода, например этот. В то же время, необходимость работы со множеством библиотек и фреймворков, работа в команде и многие другие причины побуждают использовать мощные IDE. Рейтинг для C++ можно посмотреть здесь.

Курс для новичков «IT-специалист
с нуля» – разберемся, какая профессия вам подходит, и поможем вам ее освоить
Настраиваем Visual Studio Code для C++
Как скачать и установить Visual Studio Code, рассказываем по ссылке. При установке выбирайте 64-битный System Installer. Теперь нужно настроить VS Code для работы с компилятором и отладчиком для C++, которые установили на предыдущем этапе. Сначала установите расширение для работы с C++. Нажмите на значок «Extensions» слева и в строке поиска плагинов наберите C++. Убедитесь, что плагин с описанием «C/C++ IntelliSense, debugging, and code browsing» установлен, или установите его, нажав «Install».
Закройте программу VS Code и запустите ее из командной строки командой code .. Убедитесь, что в текущей папке создан каталог с настройками .vscode. Теперь нужно создать каталог .vscode в папке C:\HELLO_CPP с исходным кодом, на котором проверяли компилятор. В каталоге создаем файлы настроек в формате JSON. Удобно использовать как редактор VS Code.
Файл tasks.json отвечает за то, чтобы работала комбинация клавиш Ctrl+shift+B для сборки программы. Убедитесь, что указан правильный путь к компилятору g++.exe, который установили с пакетом MSYS2:
< "version": "2.0.0", "tasks": [ < "type": "shell", "label": "g++.exe build active file", "command": "C:/msys64/mingw64/bin/g++.exe", "args": [ "-std=c++17", "-g", "$", "-o", "$\\$.exe" ], "options": < "cwd": "C:\\msys64\\mingw64\\bin" >, "problemMatcher": [ "$gcc" ], "group": "build" >, < "type": "cppbuild", "label": "C/C++: g++.exe build active file", "command": "C:\\msys64\\mingw64\\bin\\g++.exe", "args": [ "-fdiagnostics-color=always", "-g", "$", "-o", "$\\$.exe" ], "options": < "cwd": "C:\\msys64\\mingw64\\bin" >, "problemMatcher": [ "$gcc" ], "group": < "kind": "build", "isDefault": true >, "detail": "Task generated by Debugger." > ] >
Файл launch.json отвечает за работу отладчика. Проверьте правильность пути к отладчику gdb.exe:
< "version": "0.2.0", "configurations": [ < "name": "g++.exe build and debug active file", "type": "cppdbg", "request": "launch", "program": "$\\$.exe", "args": [], "stopAtEntry": false, "cwd": "$", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe", "setupCommands": [ < "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true >], "preLaunchTask": "g++.exe build active file", "internalConsoleOptions": "neverOpen" > ] >
Файл c_cpp_properties.json отвечает за расположение include-файлов. Также проверьте правильность пути:
< "configurations": [ < "name": "Win32", "includePath": [ "$/**", "C:/msys64/mingw64/include/**" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "windowsSdkVersion": "8.1", "compilerPath": "C:\\msys64\\mingw64\\bin\\g++.exe", "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "gcc-x86" > ], "version": 4 >
Пробуем запустить ранее созданный код из hello.cpp. Открываем файл. Разворачиваем список возле стрелки справа вверху и выбираем режим запуска без отладки — Run C/C++ File.
Теперь нажмем на стрелку, и программа выполнится. Выбираем режим отладки Debug C/C++ File, нажимаем на значок отладки слева, чтоб включить панель отладки, и запускаем снова. Отлично, отладчик тоже работает. 
Ресурсы для изучения C++
В интернете много ресурсов для самостоятельного изучения основ C++. Основы C++ от Академии Яндекса — на курсе рассматривают базовые конструкции, стандартную библиотеку и идиомы C++. По каждой теме есть разбор задач. В более подробном руководстве по языку C++ есть информация про основы синтаксиса, указатели, функции, работу со строками, алгоритмами и контейнерами.
- «Язык программирования C++»;
- «Дизайн и эволюция языка C++»;
- «Программирование. Принципы и практика использования C++»
Если после бесплатных курсов язык вам понравится, захочется программировать на нем, можно записаться на коммерческие курсы. Под руководством менторов и с понятным расписанием вы пройдете путь с нуля до специалиста по C++.
IT-специалист с нуля
Наш лучший курс для старта в IT. За 2 месяца вы пробуете себя в девяти разных профессиях: мобильной и веб-разработке, тестировании, аналитике и даже Data Science — выберите подходящую и сразу освойте ее.
Пошаговое руководство. Создание стандартной программы C++ (C++)
Visual Studio можно использовать для создания программ C++ уровня «Стандартный». Выполнив действия, описанные в этом пошаговом руководстве, вы можете создать проект, добавить новый файл в проект, изменить файл, добавив код C++, а затем скомпилировать и запустить программу с помощью Visual Studio.
Вы можете ввести собственную программу C++ или использовать одну из примеров программ. Пример программы в этом пошаговом руководстве — консольное приложение. Это приложение использует set контейнер в стандартной библиотеке C++.
Если требуется соответствие определенной версии стандарта языка C++ (например, C++14, C++17 или C++20), используйте /std:c++14 /std:c++17 параметр компилятора , или /std:c++20 параметр компилятора. (Visual Studio 2017 и более поздних версий.)
Необходимые компоненты
Для выполнения этого пошагового руководства читатель должен владеть основами языка C++.
Создание проекта и добавление исходного файла
Приведенные ниже инструкции немного отличаются в зависимости от используемой версии Visual Studio. Чтобы ознакомиться с документацией по предпочтительной версии Visual Studio, используйте селектор Версия. Он находится в верхней части оглавления на этой странице.
Создание проекта C++ в Visual Studio
- В главном меню выберите Файл >Создать >Проект, чтобы открыть диалоговое окно Создание проекта.
- В верхней части диалогового окна задайте для параметра Язык значение C++, для параметра Платформа значение Windows, а для Типа проекта — Консоль.
- В отфильтрованном списке типов проектов щелкните Консольное приложение, а затем нажмите кнопку Далее. На следующей странице введите имя проекта и укажите расположение проекта при необходимости.
- Нажмите кнопку Создать, чтобы создать проект.
Создание проекта C++ в Visual Studio 2017
- Создайте проект, указав в меню «Создать» меню «Файл«, а затем щелкните «Проект«.
- В области типов проектов Visual C++ щелкните «Рабочий стол Windows» и выберите консольное приложение Windows.
- Введите имя проекта. По умолчанию решение, содержащее проект, имеет то же имя, что и проект, но введите другое имя. Вы также можете ввести другое расположение для проекта.
- Чтобы создать проект, нажмите кнопку ОК .
Создание проекта C++ в Visual Studio 2015
- Создайте проект, указав в меню «Создать» меню «Файл«, а затем щелкните «Проект«.
- В области типов проектов Visual C++ щелкните «Рабочий стол Windows» и выберите консольное приложение Windows.
- В диалоговом окне «Новый проект» разверните установленные > шаблоны >Visual C++, а затем выберите Win32. В центральной области выберите Консольное приложение Win32.
- Введите имя проекта. По умолчанию решение, содержащее проект, имеет то же имя, что и проект, но введите другое имя. Вы также можете ввести другое расположение для проекта.
- Чтобы создать проект, нажмите кнопку ОК .
- Завершите работу мастера приложений Win32.
- Нажмите кнопку «Далее«, а затем убедитесь, что консольное приложение выбрано и не проверка поле предварительно скомпилированных заголовков.
- Нажмите кнопку Готово.
Добавление нового исходного файла
- Если Обозреватель решений не отображается, в меню «Вид« щелкните Обозреватель решений.
- Добавьте в проект новый исходный файл, как показано ниже.
- В Обозреватель решений щелкните правой кнопкой мыши папку «Исходные файлы», наведите указатель мыши на «Добавить» и нажмите кнопку «Создать элемент«.
- В узле «Код» щелкните файл C++ (cpp), введите имя файла и нажмите кнопку «Добавить«.
CPP-файл отображается в папке «Исходные файлы» в Обозреватель решений, а файл открывается в редакторе Visual Studio.
Язык Си в примерах/Простейшая программа «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»
- Язык Си в примерах