М
Маша С++
@masha_cpp107 подп.
306просмотров
15 сентября 2025 г.
questionScore: 337
Как можно оформить в C++ длинный строковый литерал и разбить его на нескольксо строк в коде? Допустим, мы хотим разбить длинную строку в коде на несколько линий, но так чтобы переносы строк и отступы из самого кода не повлияли на результат. Один из проcтейших способов - просто написать строки в кавычках друг за другом: std::string str1 = "Если ты, следуя правому разуму, будешь старательно," " ревностно и любовно относиться к делу, которым ты в" " данный момент занят..."; std::cout << str1 << std::endl; // напечатает всё в одну строку Такой вариант склеит строки без переносов &#092;n, но тут важно самостоятельно не пропустить пробелы в местах разрывов. Однако, есть и другой способ: можно использовать кавычки только в начале и конце всей строки, вставив символ &#092; как самый последний (!) на каждой строке: std::string str1 = "Если ты, следуя правому разуму, будешь старательно, &#092; ревностно и любовно относиться к делу, которым ты в &#092; данный момент занят..."; std::cout << str1 << std::endl; // напечатает всё в одну строку При этом начинать новую строку следует с самого начала, иначе любой отступ в коде попадет и в саму строку. Неудобно, правда? А как же raw string literals? Те самые, что заключаются в R"( и )" (или другие разделители)... Да, они замечательно подходят, чтоб не экранировать разные символы, вроде кавычек и обратных слешей: std::string json = R"( { "path": "C:&#092;Program Files&#092;", } )"; Но что будет, если взять нашу цитату, перенесенную по строкам в коде: std::string str1 = R"(Если ты, следуя правому разуму, будешь старательно, ревностно и любовно относиться к делу, которым ты в данный момент занят...)"; Оно вставит переносы строк &#092;n и отступы из кода в результат. Мой победитель: просто строки в двойных кавычках на каждой строке. Просто, привычно, не вставляет ненужных символов и позволяет форматировать код.
306
просмотров
1933
символов
Нет
эмодзи
Нет
медиа

Другие посты @masha_cpp

Все посты канала →