我有 C 程序,它有两个参数,第一个是 filename.txt,第二个是一些参数。并且,最后产生一些分数。现在,我在名为 1.txt .... 10,000.txt 的文件夹中有 10,000 个文件,我想使用该 C 程序计算所有 10,000 个文件的分数,并将所有分数放入文件 result.txt 中。
我怎样才能使这件事自动化。
你可以做两件事
更改您的程序,使其循环遍历所有文件。您可以使用 sprintf 来遍历文件名。
char filename[50];
for (int i = 1; i < 10000; ++i) {
sprintf(filename, "%d.txt", i);
FILE* file = fopen(filename);
// .. do stuff
fclose(file);
}
树的方式。
第一个是通过提供所有文件的参数:
./myProgram 1.txt -args 2.txt -args ...
第二个是给你所有的文件名,然后你参数 ./myProgram *.txt -args
第三个是通过使用循环编写程序来查找所有文件
C程序:
#include <stdio.h>
int main (int argc, char *argv[])
{
/* open file argv[1] with options in argv[2] */
/* ... */
return 0;
}
运行它
./program directory/*.txt
你可以这样做:
作为参数传递存储文件的目录名称。当你有这么多文件名时,将所有文件名作为参数是不可能的。我不确定当前版本的 C 标准怎么说,但 ANSI C 至少提到编译器应该能够处理至少 31 个函数参数,因此拥有 10,000 个参数是相当大的数量。
然后使用 egreaddir()
函数遍历给定目录中的所有文件并执行您需要执行的工作。