我在理解创建这个结构体向量的过程中遇到了一些麻烦。我将文件作为参数传递到程序中,并使用它们的文件位置来创建包含此信息的结构体。是否有一种方法来创建结构体,并将其添加到使用结构函数的矢量?
struct fileDetails
{
string filePath;
string fileName;
string fileExt;
void setFileDetails(char** path);
};
void fileDetails::setFileDetails(char** path)
{
filePath = path.substr(0, path.find_last_of('\'));
fileExt = path.substr(path.find_last_of(".") + 1);
fileName = path.substr(path.find_last_of('\') + 1);
fileName = fileName.substr(0, fileName.find_last_of('.'));
}
int main(int argc, char** argv[])
{
vector<fileDetails> fileList;
fileDetails fDet;
for (int i = 0; i < argc; i++)
{
fDet.setFileDetails(argv[i]);
fileList.push_back(fDet);
}
}
或者更好的方法是什么?我尝试使用这种格式,但我得到错误。
您有两个主要错误。
首先,char**
没有任何substr
成员函数。你的意思可能是用std::string
代替:
void setFileDetails(std::string path);
// ^^^^^^^^^^^
第二,在argv
中有一个不必要的*
:
int main(int argc, char** argv[])
// ^