C++ 传递包含路径的char*

C++ 传递包含路径的char*,c++,windows,string,path,C++,Windows,String,Path,我试图通过几个函数传递一个带路径的字符串,但我在路径中输入的每个'\\'都会变成内部函数中的单个'\',我不能这样使用。 在输入新函数时,是否有办法保留“\\”? 我在Windows上使用C++。 谢谢:)准备好回答一些模糊的问题 \是转义字符(例如,您可能已经遇到了\n转义序列),而\是表示单个\字符的转义序列(在某种意义上,它可以理解为转义字符的转义)。如果您确实希望字符串中包含\\,则必须使用\\\\: std::cout << "\\\\something\\" <&l


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

准备好回答一些模糊的问题

\
是转义字符(例如,您可能已经遇到了
\n
转义序列),而
\
是表示单个
\
字符的转义序列(在某种意义上,它可以理解为转义字符的转义)。如果您确实希望字符串中包含
\\
,则必须使用
\\\\

std::cout << "\\\\something\\" << std::endl; /* prints "\\something\" */
const char *str = "Hello \"World\"";
显然不会编译,您必须使用
\
来转义

std::cout << "\\\\something\\" << std::endl; /* prints "\\something\" */
const char *str = "Hello \"World\"";

在C++0x中,您将有一个原始字符串文本:

R"(anything can appear here, even " or \\ )"

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

+1,尽管,“显然不会编译”,除非有人定义了世界,然后它就不再那么明显了。我知道,但我希望我不必用“怪物”之类的东西来编写字符串\\\\\\"... 没有别的办法吗?