-1

我有 C 程序,它有两个参数,第一个是 filename.txt,第二个是一些参数。并且,最后产生一些分数。现在,我在名为 1.txt .... 10,000.txt 的文件夹中有 10,000 个文件,我想使用该 C 程序计算所有 10,000 个文件的分数,并将所有分数放入文件 result.txt 中。

我怎样才能使这件事自动化。

4

4 回答 4

1

你可以做两件事

  1. 编写一个外部脚本,以所有文件作为参数顺序调用您的程序。
  2. 更改您的程序,使其循环遍历所有文件。您可以使用 sprintf 来遍历文件名。

     char filename[50];
     for (int i = 1; i < 10000; ++i) {
       sprintf(filename, "%d.txt", i);
       FILE* file = fopen(filename);
       // .. do stuff
       fclose(file);
     }
    
于 2013-10-25T10:36:26.223 回答
0

树的方式。

第一个是通过提供所有文件的参数:

./myProgram 1.txt -args 2.txt -args ...

第二个是给你所有的文件名,然后你参数 ./myProgram *.txt -args

第三个是通过使用循环编写程序来查找所有文件

于 2013-10-25T10:38:30.733 回答
0

C程序:

#include <stdio.h>

int main (int argc, char *argv[])
{
    /* open file argv[1] with options in argv[2] */
    /* ... */
    return 0;
}

运行它

./program directory/*.txt
于 2013-10-25T10:39:05.617 回答
0

你可以这样做:

  1. 作为参数传递存储文件的目录名称。当你有这么多文件名时,将所有文件名作为参数是不可能的。我不确定当前版本的 C 标准怎么说,但 ANSI C 至少提到编译器应该能够处理至少 31 个函数参数,因此拥有 10,000 个参数是相当大的数量。

  2. 然后使用 egreaddir()函数遍历给定目录中的所有文件并执行您需要执行的工作。

于 2013-10-25T10:40:42.600 回答