【发布时间】:2014-05-04 00:53:13
【问题描述】:
我在理解创建这个结构向量的过程时遇到了一些麻烦。我将文件作为参数传递给程序,并使用它们的文件位置来创建一个包含此信息的结构。有没有办法创建结构并使用结构函数将其添加到向量中?
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);
}
}
或者什么是更好的方法?我尝试使用此格式执行此操作,但出现错误。
【问题讨论】:
-
快速扫描看起来很合理。发布错误。
-
@user3521733 再看一遍。
-
只需将
char**更改为std::string。 -
好的,编译器会告诉您该行存在类型不匹配。编译器无法将 char * 转换为 char **。你传递了一个 char *,但参数类型是一个 char **。
-
@user3521733,是的,
int main(int argc, char* argv[])是正确的。而int main(int argc, char** argv[])不正确。