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;
}

名前とともに、ファイルポインタごとに異なるポインタを出力します。OSがファイルを適切に閉じることを許可する:)

于 2010-02-11T07:52:10.797 に答える