Вам придется вычислять логику «открыт ли любой файл в этом наборе» отдельно. Я предлагаю сделать это своей собственной функцией, чтобы цикл while мог быть чистым и естественным, например,
bool isAnyOpen(ifstream files[], size_t count) {
for (size_t i = 0; i < count; ++i) {
if (files[i].is_open()) return true;
}
return false;
}
Тогда вы можете написать
while(isAnyOpen(files, count)) {
// Your code here
}
Редактировать: Это более общее решение, чем то, что опубликовал Р. Самуэль Клатчко. Если ваша проблема так же проста, как желание просто прочитать все данные из всех файлов, то используйте его метод, поскольку он более прямой.