C++

Вивід даних на екран

Оператор cout для виведення інформації у консоль. Escape-послідовності для форматування тексту, raw-рядки C++11 та особливості роботи з кирилицею в Windows.

Від «Hello, World!» до реального виводу

Ви вже знаєте, що команда cout << виводить текст на екран. Але програми рідко обмежуються одним рядком. У реальних проєктах потрібно виводити таблиці, форматовані звіти, повідомлення з відступами та спеціальними символами. У цьому розділі ми детально розберемо можливості виводу в C++.

Оператор cout

Три умови для роботи cout

Перш ніж використовувати cout, необхідно забезпечити три речі:

Підключити бібліотеку

#include <iostream>

Бібліотека iostream (input/output stream — потік введення/виведення) містить визначення cout.

Підключити простір імен

using namespace std;

Команда cout знаходиться в стандартному просторі імен std. Без цього рядка довелося б писати std::cout.

Записати текст у лапках

cout << "Текст для виведення";

Рядок, який ви хочете вивести, обов'язково записується в подвійних лапках " ".

Базовий синтаксис

cout << "Перший текст";          // Вивід одного рядка
cout << "Частина 1" << " і 2";   // Конкатенація через <<
cout << "Рядок 1\n" << "Рядок 2\n"; // Кілька рядків

Оператор << можна використовувати кілька разів поспіль, з'єднуючи різні фрагменти тексту:

cout << "My name is" << " — Ira\n";
cout << "I'm from Odessa\n";
cout << "My eyes are blue" << "\n" << "That's all!!!";

Результат на екрані:

My name is — Ira
I'm from Odessa
My eyes are blue
That's all!!!

Escape-послідовності

Що це таке?

Іноді потрібно вивести на екран спеціальні символи: перенести текст на новий рядок, додати табуляцію або вивести зворотну рису. Для цього існують Escape-послідовності (escape sequences) — комбінації символу \ (зворотна риса) та літери, що визначає дію.

Таблиця основних Escape-послідовностей

ПослідовністьНазваДія
\nNew LineПерехід на новий рядок
\tHorizontal TabТабуляція (горизонтальний відступ)
\\BackslashВивести символ зворотної риси \
\"Double QuoteВивести подвійні лапки "
\'Single QuoteВивести одинарні лапки '
\bBackspaceВидалити останній виведений символ

Навіщо потрібні \\, \" та \'?

На перший погляд, це дивно — навіщо «екранувати» такі прості символи? Відповідь проста: всі ці символи мають спеціальне значення в C++.

Наприклад, лапки " позначають початок і кінець рядка. Якщо ви хочете вивести текст з лапками всередині:

// Компілятор вважає, що рядок закінчується після "was "
cout << "The Man in red was "old friend" of John...";

У першому випадку компілятор «побачить» рядок "The Man in red was " і не зрозуміє, що далі. У другому — \" каже компілятору: «це просто символ лапок, а не кінець рядка».

Де розміщувати Escape-послідовності?

Escape-послідовність завжди має бути всередині лапок, тому що це текст:

// ✅ Правильно — Escape-послідовності всередині лапок
cout << "Рядок 1\n";
cout << "\tВідступ\n";
cout << "Шлях: C:\\Users\\file.txt\n";

// ❌ Помилка — \n поза лапками не працює так
cout << "Текст" \n;  // Помилка!

Практичний приклад: Вивід таблиці

Напишемо програму, що виводить форматовану довідку з Escape-послідовностями:

EscapeSequences.cpp
#include <iostream>

using namespace std;

int main()
{
    cout << "\t\t\t\tEscape Sequences\n";
    cout << "\n";
    cout << "\t\t\\b" << "\tBackspace\n";
    cout << "\n";
    cout << "\t\t\\n" << "\tNew line\n";
    cout << "\n";
    cout << "\t\t\\t" << "\tHorizontal tab\n";
    cout << "\n";
    cout << "\t\t\\\\" << "\tBackslash \\\n";
    cout << "\n";
    cout << "\t\t\\\"" << "\tDouble quotation mark \"\n";
    cout << "\n";
    cout << "\t\t\\'" << "\tSingle quotation mark \'\n";

    return 0;
}

Розберемо ключові моменти:

  • Рядок 7: Чотири \t створюють великий відступ для заголовка, \n переносить на новий рядок
  • Рядок 9: \\b виводить символи \b як текст (а не як команду backspace), тому що перший \ «екранує» другий
  • Рядок 15: \\\\ — потрібно чотири зворотні риси, щоб вивести дві: кожна пара \\ виводить одну \
Запам'ятайте правило: Щоб вивести \ як символ, потрібно написати \\. Щоб вивести \\, потрібно написати \\\\. І так далі — кількість \ у коді подвоюється.

Raw-рядки (C++11)

Починаючи з C++11, з'явився зручніший спосіб виводити спеціальні символи — raw-рядки (необроблені рядки). У raw-рядку всі символи трактуються буквально, без обробки Escape-послідовностей.

Синтаксис

R"(текст_рядка)"
  • R — позначає raw-рядок
  • Вміст обов'язково виділяється дужками ( )

Приклади

// Звичайний рядок: \n інтерпретується як перенос рядка
cout << "hello\nworld";
// Вивід:
// hello
// world

// Raw-рядок: \n виводиться як текст
cout << R"(hello\nworld)";
// Вивід: hello\nworld

// Raw-рядок з лапками — не потрібно екранувати
cout << R"("Test 'string'\t")";
// Вивід: "Test 'string'\t"

// Raw-рядок з дужками
cout << R"((Such brackets))";
// Вивід: (Such brackets)
Коли використовувати raw-рядки?
  • Шляхи до файлів: R"(C:\Users\Documents\file.txt)" замість "C:\\Users\\Documents\\file.txt"
  • Регулярні вирази (regular expressions)
  • Будь-який текст з великою кількістю спеціальних символів

Кирилиця в консолі Windows

Важливо: При виводі кирилиці в консольному додатку під Windows виникає проблема — символи відображаються некоректно.Наприклад:
cout << "Утро";
// На екрані може з'явитися: μЄЁю
Це відбувається тому, що кодування символів у Windows та в консолі не збігаються. Коди латинських символів однакові всюди, а от кирилиця кодується по-різному.Рішення: Поки що використовуйте латинські символи у вашому виводі. У наступних уроках ви навчитеся налаштовувати правильне кодування для кирилиці.

Практичні завдання

Рівень 1 — Базовий

Рівень 2 — Логічний

Рівень 3 — Творчий

Підсумок

📌 cout <<

Оператор виводу даних на екран. Потребує #include <iostream> та using namespace std;. Текст вказується в подвійних лапках.

📌 Escape-послідовності

Спеціальні комбінації з \ для форматування: \n — новий рядок, \t — табуляція, \\ — зворотна риса, \" — лапки.

📌 Raw-рядки

Синтаксис R"(текст)" з C++11 — всі символи трактуються буквально, без обробки Escape-послідовностей.
Copyright © 2026