gpt4 book ai didi

c++ - 当系统路径作为参数传递给函数时无法获取转义字符

转载 作者:行者123 更新时间:2023-11-28 02:48:41 26 4
gpt4 key购买 nike

我的程序必须传递视频文件的路径,以便函数读取传递的参数并播放文件。但是发生的事情是,如果我给出路径“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

关于c++ - 当系统路径作为参数传递给函数时无法获取转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23562320/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com