我想把这个:
<script src = "Script2.js" type = "text/javascript"> < / script>
在std::string
中,所以我在每个双引号("
(之前附加一个((符号,以赋予其字面含义",而不是像这样C++的字符串划分:
std::string jsFilesImport = "<script src = "Script2.js" type = "text/javascript"> < / script>""
如果我有一个很大的string
有很多("
(,为每个("
(添加((变得困难。有没有一种简单的方法可以在C++实现这一目标?
最简单的方法是使用原始字符串文字:
std::string s = R"x(<script src = "Script2.js" type = "text/javascript"> < / script>)x";
// ^^^^ ^^^
您只需要注意不要在里面提供的文本中使用x(
)x
分隔符。出现在这些分隔符中的所有其他字符将按原样呈现(包括换行符(。x
是任意选择的,可以something(
,也可以)something
。
为防止对此提出进一步问题:
不,不可能做1类似的事情
std::string s = R"resource(
#include "MyRawTextResource.txt"
)resource";
预处理器无法识别#include "MyRawTextResource.txt"
语句,因为它包含在一对双引号 ("
( 中。
对于这种情况,请考虑在编译之前引入自定义预构建步骤来执行文本替换。
1(至少我找不到解决方法。如果有人证明我错了,请欣赏。