C++ 我试图从一个目录中读入多个文件,并在我的程序中使用它们,然后再转到目录中的其他文件
我有一个目录,里面有188个类似这样的文件C++ 我试图从一个目录中读入多个文件,并在我的程序中使用它们,然后再转到目录中的其他文件,c++,unix,C++,Unix,我有一个目录,里面有188个类似这样的文件 001_AU01_query.dat 001_AU12_query.dat 001_AU17_query.dat 001_template.dat 002_AU01_query.dat 002_AU12_query.dat 002_AU17_query.dat 002_template.dat 这一直重复到047_AU 我的程序需要做的是接收一个查询文件和相应的模板文件,即使用001_AU01_query.dat和
001_AU01_query.dat
001_AU12_query.dat
001_AU17_query.dat
001_template.dat
002_AU01_query.dat
002_AU12_query.dat
002_AU17_query.dat
002_template.dat
这一直重复到047_AU
我的程序需要做的是接收一个查询文件和相应的模板文件,即使用001_AU01_query.dat和001_template.dat文件并运行代码。然后将下一个001_AU文件与相同的模板文件一起使用。这将一直重复到047
我可以手动放入一个查询文件和一个模板文件,效果很好。我只是不知道如何使用目录中的所有文件
int main(int argc, char *argv[])
{
string outFileName = "";
string templateFile = "";
string queryData = "";
ofstream outStream;
Scanner inStreamTemp;
Scanner inStreamQuery;
calc calc;
Utils::CheckArgs(3, argc, argv, "queryData templateFile outFileName");
queryData = "data_project_part1/001_AU01_query.dat";
templateFile = "data_project_part1/001_template.dat";
outFileName = "outFile";
Utils::FileOpen(outStream, outFileName);
if (Utils::FileDoesNotExist(queryData)||Utils::FileDoesNotExist(templateFile))
{
cout << "ERROR: query data file or template file name does not exist" << endl;
exit(0);
}
inStreamQuery.openFile(queryData);
inStreamTemp.openFile(templateFile);
calc.initialize(inStreamQuery, inStreamTemp);
calc.runComputation(outStream);
outStream << "Query File: " << queryData << "\n" << "Template File: " << templateFile << "\n" << "The ten closests neighbors are:\n" << calc.toStringResults() << "\n" << endl;
outStream.flush();
Utils::FileClose(outStream);
return 0;
}
一种方法是将文件名放在一个列表中,然后循环遍历该列表。 您可以将这些名称复制并粘贴到文本编辑器中,保存在记事本中,逐行读取并添加到列表中,从而将其放入列表中 然后循环遍历该列表,并使用foreach循环读取每个列表