letras - Forma eficiente de C++ de dar un significado literal a los símbolos especiales(") en una cadena de C++
imprimir codigo ascii en c++ (1)
Quiero poner esto:
<script src = "Script2.js" type = "text/javascript"> < / script>
en std::string
así que agrego un símbolo ( /
) antes de cada comillas dobles ( "
) para darle un significado literal de", en lugar de una demarcación de cadena en C ++ como esto:
std::string jsFilesImport = "<script src = /"Script2.js/" type = /"text/javascript/"> < / script>/""
Si tengo una string
grande con muchos ( "
), agregar ( /
) para cada ( "
) se vuelve difícil. ¿Hay una manera simple de lograr esto en C ++?
La forma más fácil es usar un literal de cadena sin formato :
std::string s = R"x(<script src = "Script2.js" type = "text/javascript"> < / script>)x";
// ^^^^ ^^^
Solo debe tener cuidado de que los delimitadores x(
)x
no se utilicen en el texto que se encuentra en el interior. Todos los demás caracteres que aparecen dentro de estos delimitadores se representan como están (incluidas las nuevas líneas). x
se elige arbitrariamente, podría ser something(
, )something
también.
Para evitar más preguntas al respecto:
No, no es posible hacer 1 algo así.
std::string s = R"resource(
#include "MyRawTextResource.txt"
)resource";
El preprocesador no reconocerá la declaración #include "MyRawTextResource.txt"
, porque está encerrada entre un par de comillas dobles ( "
).
En tal caso, considere introducir su paso de precompilación personalizado haciendo el reemplazo del texto antes de la compilación.
1) Al menos no pude encontrar una solución. Aprecio si alguien me prueba mal sobre eso.