如何读取c中的文件列表

时间:2019-02-10 01:38:09

标签: c arrays file-io

我正在尝试使用for循环读取C中的文件列表,但是它仅读取第一个文件,然后存在for循环,我不确定为什么。我是C语言的新手,所以我可能犯了一个愚蠢的错误,但是我已经坚持了一段时间。这是我的代码。

#include <stdlib.h>
#include <stdbool.h>
#include <string.h>

#define MAXCHAR 1000


char* fileNames[] = {"file1.csv", "file2.csv"};
FILE* fp;                 //pointer to file

int main(){

  for(int i = 0; i < sizeof(fileNames[i])/sizeof(char *); i++){
    fp = fopen(fileNames[i],"r");
    char line[MAXCHAR];

    //If file can't be read
    if(fp == NULL){
      printf("Could not open file %s","latitude.csv");
      return 0;
    }

    printf("Reading file %s\n",fileNames[i]);
    while(fgets(line, MAXCHAR, fp) != NULL){

    }
    fclose(fp);

  }
  return 0;
}

1 个答案:

答案 0 :(得分:2)

尺寸计算中有一个杂散数组下标,导致循环仅经过1次迭代即可终止:sizeof(fileNames[i])/sizeof(char *)

将其更改为:sizeof(fileNames)/sizeof(fileNames[0])