传递包含路径的char *

时间:2010-11-27 19:54:04

标签: c++ windows string path


我试图通过一个带有路径的字符串传递几个函数,但是我在路径中放入的每个'\\'在内部函数中变为单个'\',我不能这样使用它。
有没有办法在输入新功能时保留“\\”? 我在Windows上使用C ++ 谢谢:))

2 个答案:

答案 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 \\ )"

“(和)”之间的所有内容都是字符串的一部分 - 无需转义。在目前的标准中,你无法实现你想要的目标。