gpt4 book ai didi

c++ - 将字符转换为字符串时反斜杠消失

转载 作者:行者123 更新时间:2023-11-30 03:57:42 25 4
gpt4 key购买 nike

我有一个返回文件夹内容的函数:

void getDir(const char* d, vector<string> & f)
{
FILE* pipe = NULL;
string pCmd = "dir /B /S " + string(d);
char buf[256];
if( NULL == (pipe = _popen(pCmd.c_str(),"rt")))
{
cout<<"[Expletive deleted]"<<endl;
return;
}
while (!feof(pipe))
{
if(fgets(buf,256,pipe) != NULL)
{
f.push_back(string(buf));
}
}
_pclose(pipe);
}

问题是字符串 pCMD 应该等于 "dir/B/S c:\Users\Tom",但在将 char 转换为字符串后,它删除了像 "dir/B/S c:UsersTom" 这样的反斜杠。我试过以这些方式调用该函数:

getDir("c:\Users\Tom", files);
getDir("c:/Users/Tom", files);
getDir("c:\\Users\Tom", files);
getDir("c:\\Users\\Tom", files);

但是每次我都会失败(vector files 是空的...)。有人知道我做错了什么吗?

最佳答案

放双反斜杠,因为单反斜杠代表通配符,因此要将反斜杠作为一个字符,它前面应该有另一个反斜杠

关于c++ - 将字符转换为字符串时反斜杠消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27818724/

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