1

Тема: C, функція fopen для відкриття файлів у циклі

Яким чином правильно можна задати відкриття файлів у циклі?

Нехай спочатку відкриваємо файл х та беремо з нього список файлів, переписуємо цей список у char **name, далі

for (int i = 0; i++; i++)
{
  fopen(name(i), …);
}
i виявляється, що fopen не працює з таким name.

2

Re: C, функція fopen для відкриття файлів у циклі

Так звичайно простіше, але потрібно саме на C або на спрощеному С++, без std функцій.

3

Re: C, функція fopen для відкриття файлів у циклі

У fopen перший аргумент повинний бути const char*, тому варіант з простою передачею names[iName] не проходить.

4

Re: C, функція fopen для відкриття файлів у циклі

Мені потрібно ось так зробити:

char** fileNames = new char*[150];
char bufMain[500];

FILE* fp = fopen("fileslist", "r")
for (int iFile = 0; iFile < 150; iFile++)
{
  fileNames[iFile] = new char[50];
  fgets(bufMain, sizeof(bufMain), fp);
  sprintf(fileNames[iFile], bufMain);
  FILE* fscp = fopen(fileNames[iFile], "r");
  fclose (fscp);
}

Незважаючи, на те що fileNames[iFile] містить правильне ім'я файлу, він не відкривається.

5

Re: C, функція fopen для відкриття файлів у циклі

Створювати не потрібно, з них потрібно читати. Я не описував у цьому фрагменті, що з них читатиметься.

6

Re: C, функція fopen для відкриття файлів у циклі

Тепер усе функціонує правильно. Дякую!