Как прочитать несколько файлов с одинаковым префиксом в C?
У меня есть большое количество файлов с префиксом info_ _ _ _.txt (например, info0921,info1231,info0426).
Последние четыре цифры - это дата в формате "mmdd".
Мне нужно написать программу на C, чтобы прочитать все эти файлы, сохранить данные в массив и сделать некоторые вычисления с ним.
Я пытался сделать что-то подобное:
for(i = 0; i < Number_of_files; i++){
sprintf(filename, "info%d.txt", i+1);}
Тем не менее, это не работает хорошо, потому что "я" не соответствует формату даты.
1 ответ
У вас есть два пути:
- Вы пытаетесь открыть все файлы, которые могут соответствовать вашему шаблону (так примерно 366 возможностей)
- Вы открываете каталог, в котором находятся ваши файлы, перечисляете все записи, и для каждой записи вы видите, соответствует ли это вашему шаблону.
Для первого что-то вроде
for(i = 1; i <= 12; i++) {
for(j = 1; j < 31; j++) {
sprintf(filename, "info%02d%02d.txt", i, j);
if (!file = fopen(filename, "r")) {
if (errno != ENOENT) {
// Real error, log ?
}
} else {
// Yay ! Can use "file" now
fclose(file);
file = NULL;
}
}
}
Сделаю.
Для последнего нам нужно знать, используете ли вы Linux или Windows.