初始化字符串时,如果字符串中含有C/C++预留字符,需要加转义符\转义,这样转义的符号多了就很麻烦,另一种方法是将字符串放在R"()"中间,就不用关心那些特殊字符了。
显然第二种方法方便很多。
int main()
{
// 方法1,特殊字符加转义
std::string testXml = {
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
"<staff>\n"
" <name=\"heworld\" age=\"23\" />\n"
"</staff>\n" };
// 方法2,将字符放在R"()"中
std::string testXml2 = { R"(
<?xml version="1.0" encoding="utf-8"?>
<staff>
<name="heworld" age="23" />
</staff>
)" };
std::cout << testXml.data() << std::endl;
std::cout << testXml2.data() << std::endl;
return 0;
}
{}可以不要,不过C++11统一了初始化方法都用{}最好风格加上了。
执行结果: