如何将C程序用于多个文件

时间:2013-10-25 10:30:28

标签: c bash

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

如何自动化这件事。

4 个答案:

答案 0 :(得分: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);
     }
    

答案 1 :(得分:0)

树道。

第一个是给你所有文件的参数:

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

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

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

答案 2 :(得分: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

答案 3 :(得分:0)

你可以这样做:

  1. 作为参数传递存储文件的目录名称。给予 当你有这么多时,所有文件名都不可能作为参数 那些。我不确定当前版本的C标准说的是什么 ANSI C至少提到编译器应该能够采用 至少关注31个函数的参数,因此有10,000个是相当的 很多。

  2. 然后使用例如readdir()函数迭代给定目录中的所有文件并执行您需要执行的工作。