Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我试图从一个目录中读入多个文件,并在我的程序中使用它们,然后再转到目录中的其他文件_C++_Unix - Fatal编程技术网

C++ 我试图从一个目录中读入多个文件,并在我的程序中使用它们,然后再转到目录中的其他文件

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和

我有一个目录,里面有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_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循环读取每个列表