Создание первого приложения на C++: пишем и запускаем Hello, world

Создание первого приложения на C++: пишем и запускаем Hello, world Полезное

Первое приложение на C++ — это небольшая программа, которую вы набираете в текстовом файле, компилируете в исполняемый файл и запускаете. Классический первый пример выводит в консоль строку Hello, world!: на нем удобно проверить, что компилятор установлен и что весь путь от исходника до запуска работает.

Ниже — полный код первой программы, который можно скопировать и запустить, разбор каждой строки, команды для сборки в Windows, Linux и macOS, а также типичная ошибка новичка и что делать, если программа не собирается. Инструменты проверены на 16.09.2026.

Что понадобится

Для первой программы на C++ нужны две вещи: компилятор (он превращает текст программы в исполняемый файл) и место, где набирать код. Компилятор зависит от операционной системы.

ОС Компилятор Как поставить
Windows MSVC или MinGW-w64 (g++) Visual Studio Installer, компонент «Разработка на C++»
Linux g++ или clang++ sudo apt install build-essential (Debian/Ubuntu)
macOS clang++ xcode-select --install (Command Line Tools)

Набирать код можно в любом редакторе: Visual Studio, VS Code, CLion или даже в простом текстовом редакторе. Главное — сохранить файл с расширением .cpp, например hello.cpp. Специальная среда разработки не обязательна, но подсветка синтаксиса и автодополнение ускоряют работу.

На Windows проще всего поставить Visual Studio (версии 2022 или 2026) с компонентом для C++ — он ставит компилятор и редактор сразу. Более легкий вариант без большой среды — компилятор MinGW-w64, который дает команду g++, как в Linux и macOS.

Первая программа целиком

Вот минимальная рабочая программа. Скопируйте ее в файл hello.cpp — дальше разберем каждую строку.

#include <iostream>

int main() {
    std::cout << "Hello, world!" << std::endl;
    return 0;
}

После сборки и запуска в консоли появится ровно одна строка:

Hello, world!

Если вы это увидели — компилятор работает, и первое приложение готово. Дальше остается понять, что делает каждая строка.

Разбор по строкам

  • #include <iostream> — подключает стандартную библиотеку ввода-вывода. Из нее берется std::cout — поток вывода в консоль. Без этой строки компилятор не будет знать, что такое cout.
  • int main() — главная функция, точка входа. Выполнение программы начинается отсюда. Тип int означает, что функция возвращает целое число — код завершения.
  • std::cout << "Hello, world!" — отправляет текст в стандартный вывод. Оператор << «вливает» данные в поток; строку для вывода пишут в двойных кавычках.
  • std::endl — переводит строку (и сбрасывает буфер вывода). Часто вместо него пишут "\n" — это тоже перевод строки, но без принудительного сброса буфера.
  • return 0 — сообщает системе, что программа завершилась без ошибок. Ненулевое значение обычно означает, что что-то пошло не так.

Префикс std:: указывает, что cout и endl берутся из стандартного пространства имен std. Во многих учебниках в начало добавляют строку using namespace std; и пишут просто cout — это допустимо для маленьких программ, но в крупных проектах явный префикс std:: считается более безопасным, потому что не смешивает имена из разных библиотек.

Как собрать и запустить

Сборка — это вызов компилятора, который из hello.cpp делает исполняемый файл. В Linux и macOS откройте терминал в папке с файлом и выполните две команды:

g++ hello.cpp -o hello
./hello

Первая команда компилирует исходник в файл hello, вторая — запускает его. На macOS команда g++ обычно является псевдонимом для clang++, поэтому подойдет и clang++ hello.cpp -o hello.

В Windows с компилятором MinGW-w64 команды почти те же, меняется только имя результата:

g++ hello.cpp -o hello.exe
hello.exe

Если вы работаете в Visual Studio, отдельные команды не нужны: откройте файл в проекте и нажмите Ctrl+F5 (запуск без отладки) — среда сама скомпилирует и запустит программу, оставив окно консоли открытым.

При желании можно указать версию стандарта, например g++ -std=c++23 hello.cpp -o hello. Для Hello, world! это не обязательно: пример собирается на любом современном компиляторе и без явного флага.

Программа, которая делает чуть больше

Вывод одной строки — это только проверка. Чтобы программа стала похожа на приложение, добавим переменные и несколько строк вывода. Данные здесь заданы прямо в коде, поэтому результат предсказуем и его можно сверить.

#include <iostream>
#include <string>

int main() {
    std::string name = "Мария";
    int year = 2026;
    std::cout << "Привет, " << name << "!" << std::endl;
    std::cout << "Первая программа на C++ собрана в " << year << " году." << std::endl;
    return 0;
}

Результат:

Привет, Мария!
Первая программа на C++ собрана в 2026 году.

Заголовок <string> подключен ради типа std::string — строки переменной длины. В один поток std::cout можно подряд «вливать» и текст в кавычках, и значения переменных — оператор << соединяет их слева направо.

Чтобы программа спрашивала данные у пользователя, а не хранила их в коде, значение читают из потока ввода std::cin. Целую строку с пробелами удобно читать функцией std::getline:

std::string name;
std::cout << "Как вас зовут? ";
std::getline(std::cin, name);  // читаем строку целиком, включая пробелы

После этого в name окажется то, что ввел пользователь, и его можно вывести так же, как переменную в примере выше.

Типичная ошибка новичка: целочисленное деление

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

Неверный расчет:

#include <iostream>

int main() {
    int a = 5, b = 2;
    std::cout << "5 / 2 = " << a / b << std::endl;
    return 0;
}

Фактический вывод:

5 / 2 = 2

Разбор: a и b объявлены как int, поэтому a / b — целочисленное деление, и 5 / 2 дает 2, а не 2.5. Ошибки компиляции нет, программа просто считает не то, что ожидалось.

Исправление — использовать дробный тип double хотя бы для одного из операндов:

#include <iostream>

int main() {
    double a = 5, b = 2;
    std::cout << "5 / 2 = " << a / b << std::endl;
    return 0;
}

Теперь деление дробное:

5 / 2 = 2.5

Правило простое: если нужен дробный результат, хотя бы одно из чисел в делении должно быть дробным (double или float). Иначе C++ делит нацело.

Если не получилось

Первая сборка часто спотыкается на мелочах. Ниже — типовые симптомы и что делать.

  • 'cout' was not declared или 'cout' is not a member of 'std' — забыт #include <iostream> или пропущен префикс std::. Проверьте первую строку и обращения к cout.
  • g++: command not found (Linux/macOS) или 'g++' не является внутренней командой (Windows) — компилятор не установлен или не добавлен в PATH. Вернитесь к разделу «Что понадобится» и поставьте компилятор для своей ОС.
  • Окно консоли мелькает и сразу закрывается — вы запустили программу двойным кликом. Запускайте из терминала (./hello) или в Visual Studio через Ctrl+F5 — тогда окно останется открытым.
  • Вместо русских букв в консоли Windows кракозябры — это вопрос кодировки консоли, а не ошибки в коде. Поведение зависит от версии Windows и настроек терминала; часто помогает переключение кодовой страницы командой chcp 65001 перед запуском. Для первой программы проще выводить текст латиницей.

Выводы

  • Первое приложение на C++ — это цикл «написать .cpp — скомпилировать — запустить»; на примере Hello, world! удобно проверить, что весь этот путь работает.
  • Минимальная программа состоит из #include <iostream>, функции main и вывода через std::cout; return 0 сообщает об успешном завершении.
  • Собирают программу командой g++ hello.cpp -o hello (или clang++), в Visual Studio — через Ctrl+F5.
  • Целочисленное деление отбрасывает дробную часть без ошибки компиляции — для дробного результата берут тип double.
  • Для интерактивной программы данные читают из std::cin (std::getline для строки целиком), а не хранят в коде.

Где применять на практике

Навык собрать и запустить программу на C++ — основа для системного и прикладного программирования: игр, высоконагруженных сервисов, встраиваемых систем и десктопных приложений, где важны скорость и контроль над памятью. От первого Hello, world! до таких проектов путь строится через классы, работу с памятью и стандартную библиотеку.

Освойте тему на практике

Пройти этот путь системно, с проверкой кода практикующими разработчиками, помогает курс Программирование на C++ с нуля: он ведет от базового синтаксиса к самостоятельным проектам.

Освойте тему на практике

Посмотреть, как разбирают такие темы вживую, и задать вопросы преподавателям можно на открытых вебинарах Otus — они бесплатные и проходят регулярно.

Смежные темы: Где писать программный код: список приложений, Компиляторы: назначение и виды, Класс: что это и как использовать.

FAQ

Обязательно ли платить за среду разработки? Нет. Visual Studio Community, VS Code, компиляторы g++ и clang++ бесплатны. Для первой программы достаточно бесплатного компилятора и любого текстового редактора.

Можно ли писать на C++ онлайн, без установки? Да, для первых проб подойдут онлайн-компиляторы прямо в браузере — код запускается на их сервере. Но для реальных проектов и отладки инструменты все же ставят локально.

Чем первая программа на C++ отличается от программы на C? В C вывод делают функцией printf из <stdio.h>, а в C++ — через поток std::cout из <iostream>. Функция main и общая схема «скомпилировать и запустить» в обоих языках совпадают.

OTUS Журнал