首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将系统路径作为参数传递给函数时,无法获取转义字符

将系统路径作为参数传递给函数时,无法获取转义字符
EN

Stack Overflow用户
提问于 2014-05-09 18:28:02
回答 2查看 78关注 0票数 0

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

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

代码语言:javascript
复制
int main(void)
{
  VideoPlayer h;

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

使用的头文件是用户定义的,其中的函数是:

代码语言:javascript
复制
bool VideoPlayer::Load(const char* pFilePath)
{
   //internal coding
}

现在在参数pFilePath中,值是"G:Sunny Cpp-2edit.wmv“。因此该函数无法从系统中读取路径。应该做什么修改才能使其正常工作?接受任何帮助。提前谢谢你。

EN

回答 2

Stack Overflow用户

发布于 2014-05-09 18:35:23

符号'\‘表示简单的转义序列,例如换行符'\n’或引号‘\“。为了区分转义序列和字符'\’,最后一个字符必须加倍为'\‘

代码语言:javascript
复制
"G:\\Sunny Cpp-2\\edit.wmv"

而不是

代码语言:javascript
复制
"G:\Sunny Cpp-2\edit.wmv"

或使用原始字符串文字

代码语言:javascript
复制
R"(G:\Sunny Cpp-2\edit.wmv)"

下面是一个例子

代码语言:javascript
复制
#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;
}

输出为

代码语言:javascript
复制
G:\Sunny Cpp-2\edit.wmv
G:\Sunny Cpp-2\edit.wmv
票数 2
EN

Stack Overflow用户

发布于 2014-05-09 18:42:24

\是一个特殊字符。它用于赋予其他字符特殊含义,如\n (它赋予'n‘特殊含义,组合被视为换行符)。因此,如果你想使用没有特殊含义的'\‘,你必须通过使用另一个'\’来专门化。所以使用"G:\\Sunny Cpp-2\\edit.wmv"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23562320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档