【发布时间】:2013-11-29 22:30:31
【问题描述】:
我有 47 个不同的文件:
- 001_template.dat
- ...
- 047_template.dat
在名为 /data 的目录中。我需要将这些模板文件中的每一个与目录中的三个不同的查询文件进行比较。这些被命名为:
- 001_AU01_query.dat
- 001_AU12_query.dat
- 001_AU17_query.dat。
我知道如何让所有这些运行起来,但是我必须再剪切和粘贴这 6 行代码 46 次,程序会变得非常冗长和混乱。
有没有循环遍历这些文件的好方法?可能是循环遍历模板文件,然后对每个模板执行三个查询?我显然已经定义了相似函数和排序函数,以及inputFile。这是我要转换的代码:(不是作业,这是我一直在做的面部表情识别项目)
int main()
{
vector<float> temp01;
vector<float> temp12;
vector<float> temp17;
temp01 = similar(inputFile("data/001_AU01_query.dat"), inputFile("data/001_template.dat"));
sortAndOutput(temp01);
temp12 = similar(inputFile("data/001_AU12_query.dat"), inputFile("data/001_template.dat"));
sortAndOutput(temp12);
temp17 = similar(inputFile("data/001_AU17_query.dat"), inputFile("data/001_template.dat"));
sortAndOutput(temp17);
}
【问题讨论】:
-
使用一个变量来保存文件名和这些文件的循环!您可以使用
std::ostringstream构造一个合适的字符串(打开文件时可能需要使用str.c_str())。 -
多次复制和粘贴意味着您应该使用某种函数和/或某种循环
-
也利用向量,因为您似乎知道如何使用它们。
-
所以我可以使用字符串向量来保存文件名。嗯