Это называется multiline string literal
.
Вам нужно выйти из встроенного перевода строки. В противном случае он не скомпилируется:
std::cout << "Hello world \
and stackoverflow";
Примечание: Обратная косая черта должна выполняться непосредственно перед концом строки, поскольку им необходимо экранировать символ новой строки в источнике.
Также вы можете использовать забавный факт "Adjacent string literals are concatenated by the compiler"
для вашего преимущества:
std::cout << "Hello World"
"Stack overflow";
См. это для raw string literals
. В C ++ 11 у нас есть raw string literals
. Они вроде как here-text .
Синтаксис:
prefix(optional) R"delimiter( raw_characters )delimiter"
Он допускает любую последовательность символов, за исключением того, что она не должна содержать закрывающую последовательность )delimiter"
. Он используется, чтобы избежать побега любого персонажа. Все, что находится между разделителями, становится частью строки.
const char* s1 = R"foo(
Hello
World
)foo";
Пример взят из cppreference .