Algo así como imprimir FIN << FIN; en C++?

Algo así como imprimir FIN << FIN; en C++?

C++ 11 tiene literales de cadena sin formato:

// this doesn't have '\n', but '\\' and 'n'
R"(yada"yadayada\n)" 

Y si necesita esos paréntesis, también puede hacerlo, usando lo que quiera para un token final:

// the following will be "(yada)(yada)(yada)"
R"END((yada)(yada)(yada))END" 

también funciona con nuevas líneas incrustadas:

// the following will be "\n(yada)\n(yada)\n(yada)\n"
R"END(
(yada)
(yada)
(yada)
)END" 

Esta respuesta ahora está desactualizada para C++ moderno:consulte la respuesta de sbi para la forma moderna.

Esto es lo mejor que puedes hacer:

std::cout <<
    "This is a\n"
    "multiline\n"
    "string.\n";

No tan conveniente como un heredoc propiamente dicho, pero tampoco terrible.


En C++, generalmente no se considera estilo de código poner grandes cantidades de datos en el código fuente, por lo que no hay una forma sofisticada de hacerlo.

Por lo general, es más flexible colocar el texto en un archivo externo (como un archivo de texto), luego no está vinculado al ejecutable compilado.

Si desea que el texto se vincule al ejecutable, entonces (dependiendo de su plataforma) a menudo puede usar alguna forma de recurso soporte, o un ensamblador con una directiva de estilo 'incbin' para dar nombre a un área de datos con el texto que desee.

Alternativamente, puede usar una utilidad externa (como xxd -i ) para compilar una matriz de estilo C con nombre a partir de un archivo de entrada dado. El archivo generado se puede compilar con el resto del código fuente.