如何读取C中具有相同前缀的多个文件?

时间:2018-03-09 16:17:48

标签: c

我有大量带有前缀info_ _ _ _.txt的文件(例如,info0921,info1231,info0426)。
最后四位是格式为“mmdd”的日期 我需要编写一个C程序来读取所有这些文件,将数据存储到数组中并使用它进行一些计算 我试着这样做:

for(i = 0; i < Number_of_files; i++){
sprintf(filename, "info%d.txt", i+1);}

但是,它不能正常工作,因为“i”不符合日期格式。

1 个答案:

答案 0 :(得分:0)

你有两种方式:

  • 您尝试打开所有可能与您的模式相匹配的文件(因此大概有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上。