在我的程序中,我必须传递视频文件的路径,以便该函数读取传递的参数并播放文件。但是发生的是,如果我给出路径“ G:\ sun \ play.wmv”,则在解析后将其取为“ G:sunplay.wmv”

在.cpp文件中,我编写了以下代码:

int main(void)
{
  VideoPlayer h;

  h.Load("G:\Sunny Cpp-2\edit.wmv");
  h.Start();
  getch();
  return 0;
}


用户使用的头文件是用户定义的,其功能为:

bool VideoPlayer::Load(const char* pFilePath)
{
   //internal coding
}


现在,在参数pFilePath中,该值为“ G:Sunny Cpp-2edit.wmv”。因此该功能无法从系统读取路径。应该进行哪些修改才能使其正常工作?
任何帮助都可以接受。预先感谢您。

最佳答案

符号“ \”表示简单的转义序列,例如换行符“ \ n”或引号“ \””。



"G:\\Sunny Cpp-2\\edit.wmv"


代替

"G:\Sunny Cpp-2\edit.wmv"


或者使用原始字符串文字

R"(G:\Sunny Cpp-2\edit.wmv)"


这是一个例子

#include <iostream>

void f( const char *s ) { std::cout << s << std::endl; }

int main()
{
    f( "G:\\Sunny Cpp-2\\edit.wmv" );
    f( R"(G:\Sunny Cpp-2\edit.wmv)" );

    return 0;
}


输出是

G:\Sunny Cpp-2\edit.wmv
G:\Sunny Cpp-2\edit.wmv

10-07 22:16