我试图通过一个带有路径的字符串传递几个函数,但是我在路径中放入的每个'\\'在内部函数中变为单个'\',我不能这样使用它。
有没有办法在输入新功能时保留“\\”?
我在Windows上使用C ++
谢谢:))
答案 0 :(得分:13)
准备好一些混淆的答案。
\
是转义字符(例如,您可能已经遇到\n
转义序列),而\\
是表示单个\
的转义序列字符(在某种意义上,它可以被理解为转义字符的转义)。如果您确实想在字符串中添加\\
,则必须使用\\\\
:
std::cout << "\\\\something\\" << std::endl; /* prints "\\something\" */
仅提供另一个示例,假设您希望在字符串中包含一些"
。写作:
const char *str = "Hello "World"";
显然无法编译,您必须使用"
转义\
:
const char *str = "Hello \"World\"";
答案 1 :(得分:2)
在C ++ 0x中,您将拥有一个原始字符串文字:
R"(anything can appear here, even " or \\ )"
“(和)”之间的所有内容都是字符串的一部分 - 无需转义。在目前的标准中,你无法实现你想要的目标。