Как я пошел бы о создании массива указателей файла в C?
Я хотел бы создать массив указателей файла на аргументы основного... как a1.txt, a2.txt, и т.д. Таким образом, я буду работать ./prog arg1.txt arg2.txt arg3.txt
чтобы иметь программу используют эти файлы.
Затем аргумент в пользу основного char **argv
От argv я хотел бы создать массив указателей файлов/файла. Это - то, что я имею до сих пор.
FILE *inputFiles[argc - 1];
int i;
for (i = 1; i < argc; i++)
inputFiles[i] = fopen(argv[i], "r");
Код в порядке, но не забудьте компилировать на C99.
Если вы не используете C99, вам нужно создать массив в куче, например:
FILE** inputFiles = malloc(sizeof(FILE*) * (argc-1));
// operations...
free(inputFiles);
#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;
}
Он печатает разные указатели для каждого указателя файла вместе с именами. Разрешение ОС правильно закрывать файлы:)