cod*_*ver 17 c++ string std string-literals c++11
我想说这个:
<script src = "Script2.js" type = "text/javascript"> < / script>
Run Code Online (Sandbox Code Playgroud)
在一个std::string所以我\在每个双引号(")之前附加一个()符号,给它一个字面含义",而不是像这样的C++中的字符串分界:
std::string jsFilesImport = "<script src = \"Script2.js\" type = \"text/javascript\"> < / script>\""
Run Code Online (Sandbox Code Playgroud)
如果我有string很多("),则\每个(")的添加()变得困难.有一种简单的方法可以在C++中实现这一点吗?
use*_*042 31
最简单的方法是使用原始字符串文字:
std::string s = R"x(<script src = "Script2.js" type = "text/javascript"> < / script>)x";
// ^^^^ ^^^
Run Code Online (Sandbox Code Playgroud)
您只需要注意x( )x在内部提供的文本中不使用分隔符.出现在这些分隔符中的所有其他字符都按原样呈现(包括换行符).x是任意选择的,可以是something(,)something为好.
为了防止进一步的问题:
不,这是不可能做到1个类似
std::string s = R"resource(
#include "MyRawTextResource.txt"
)resource";
Run Code Online (Sandbox Code Playgroud)
预处理器不会识别该#include "MyRawTextResource.txt"语句,因为它包含在一对双引号(")中.
对于这种情况,请考虑在编译之前引入自定义预构建步骤进行文本替换.
1)至少我无法找到解决方法.感谢有人证明我错了.
| 归档时间: |
|
| 查看次数: |
1243 次 |
| 最近记录: |