7

我将如何在 C 中创建一个文件指针数组?
我想创建一个指向 main 参数的文件指针数组......比如 a1.txt、a2.txt 等......所以我会运行./prog arg1.txt arg2.txt arg3.txt让程序使用这些文件。
那么 main 的论点是char **argv

从 argv,我想创建文件/文件指针数组。这就是我到目前为止所拥有的。

FILE *inputFiles[argc - 1];
int i;
for (i = 1; i < argc; i++)
    inputFiles[i] = fopen(argv[i], "r");
4

2 回答 2

7

代码很好,但记得用 C99 编译。

如果不使用 C99,则需要在堆上创建数组,例如:

FILE** inputFiles = malloc(sizeof(FILE*) * (argc-1));

// operations...

free(inputFiles);
于 2010-02-11T07:38:58.987 回答
1
#include <stdio.h>`

int main(int argc, char **argv)
{
FILE *inputFiles[argc - 1];
int i;
for (i = 1; i < argc; i++)
{
    printf("%s\n",argv[i]);
    inputFiles[i] = fopen(argv[i], "r");
    printf("%p\n",inputFiles[i]);
}
  return 0;
}

它为每个文件指针以及名称打印不同的指针。允许操作系统正确关闭文件:)

于 2010-02-11T07:52:10.797 回答