C

时间:2016-09-11 20:01:27

标签: c file csv io

所以我想从csv文件中读取一些数据。

但是fgets在while循环中一直给我NULL。它在while循环之外工作正常。

也许我在这里遗漏了一些明显的东西。

编辑:我刚刚清理了代码

int main(int argc, char *argv[])
{

FILE *input_file = fopen("free-zipcode-database-Primary.csv","r");
char buffer[1024];

if (input_file == 0) {
    fprintf(stderr,"Cannot open input file.\n");
}



int count = 0; // to skip the first line in csv that contains the titles


while (1)
{


    if (count == 0) 
    {
        continue;
    }

    if (fgets(buffer, 1024, input_file) != NULL)
    {
        puts(buffer);
        parseDataFromCSV(buffer);
    } else {
        break;
    }




    count++;

} 


    fclose(input_file);

    return 0;
}

编辑:这是工作代码。

FILE *input_file = fopen("free-zipcode-database-Primary.csv","r");
char buffer[1024];

if (input_file == 0) 
{
    fprintf(stderr,"Cannot open input file.\n");
}

/* skip the first line in csv file */
fgets(buffer, 1024, input_file);
while (1)
{

    if (fgets(buffer, 1024, input_file) != NULL)
    {
        puts(buffer);
        parseDataFromCSV(buffer);
        bzero(buffer,1024);
        break;
    } else {
        break;
    }


} 


fclose(input_file);

1 个答案:

答案 0 :(得分:3)

循环中你有无限循环。

if (count == 0) {
    continue;
}