所以我想从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);
答案 0 :(得分:3)
循环中你有无限循环。
if (count == 0) {
continue;
}