Пространства имён
Варианты
Действия

Управляющие последовательности

Материал из cppreference.com
< cpp‎ | language
 
 
Язык С++
Общие темы
Таблица ASCII
Escape-последовательности
История C++
Управление программой
Операторы условного выполнения
Операторы повторения
Операторы перехода
Функции
объявление функции
объявление лямбда-функции
шаблон функции
спецификатор inline
спецификаторы исключений (устарело)
спецификатор noexcept (C++11)
Исключения
Пространства имён
объявление пространства имён
псевдонимы пространства имён
Типы
спецификатор decltype (C++11)
Спецификаторы
cv-спецификаторы
спецификаторы продолжительности хранения
спецификатор constexpr (C++11)
спецификатор auto (C++11)
спецификатор alignas (C++11)
Инициализация
Литералы
Выражения
Утилиты
Типы
typedef-объявление
объявление псевдонима типа (C++11)
атрибуты (C++11)
Приведения типов
неявные преобразования
const_cast-преобразование
static_cast-преобразование
dynamic_cast-преобразование
reinterpret_cast-преобразование
C-подобное и функциональное приведение типов
Выделение памяти
Классы
Особые свойства классовых функций
Специальные функции-члены
Шаблоны
шаблон класса
шаблон функции
специализация шаблона
упакованные параметры (C++11)
Разное
Ассемблерные вставки
 

Управляющие последовательности используются для описания определённых специальных символов внутри строковых литералов.

Доступны следующие управляющие последовательности:

Управляющая
последовательность
Описание Представление
\' одинарная кавычка байт 0x27
\" двойная кавычка байт 0x22
\? вопросительный знак байт 0x3f
\\ обратный слеш байт 0x5c
\0 нулевой символ байт 0x00
\a звуковой сигнал байт 0x07
\b забой байт 0x08
\f перевод страницы - новая страница байт 0x0c
\n перевод строки - новая строка байт 0x0a
\r возврат каретки байт 0x0d
\t горизонтальная табуляция байт 0x09
\v вертикальная табуляция байт 0x0b
\nnn произвольное восьмеричное значение байт nnn
\xnn произвольное шестнадцатеричное значение байт nn
\unnnn произвольное Юникод-значение.
Результатом могут быть несколько символов.
кодовая позиция U+nnnn
\Unnnnnnnn произвольное Юникод-значение.
Результатом могут быть несколько символов.
кодовая позиция U+nnnnnnnn

[править] Примечания

Символ перевода строки \n имеет специальное значение, когда используется в текстовом вводе/вывод; он конвертируется в соответствующий ОС байт или последовательность байт.

Восьмеричные управляющие последовательности ограничены тремя цифрами, но заканчиваются перед первым символом, не являющимся восьмеричной цифрой, если таковой встретится раньше.

Шестнадцатеричные управляющие последовательности не ограничены по длине и заканчиваются перед первым символом, не являющимся шестнадцатеричной цифрой. Если значение одной шестнадцатеричной управляющей последовательности не помещается в диапазон значений символьного типа, используемого в этом строковом литерале (char, char16_t, char32_t или wchar_t), то результат не определён.

Универсальное имя символа в узком строковом литерале может отображаться в более чем один символ вследствие многобайтной кодировки.

Управляющая последовательность для вопросительного знака \? используется, чтобы предотвратить распознавание триграфов внутри строковых литералов: такая строка, как "??/" компилируется как "\", но если использовать управляющую последовательность для второго вопросительного знака ("?\?/"), то она становиться "??/".

[править] Пример

#include <iostream>
 
int main()
{
    std::printf("This\nis\na\ntest\n\nShe said, \"How are you?\"\n");
}

Вывод:

This
is
a
test
 
She said, "How are you?"

[править] См. также