при попытке создать функцию в c, которая может получить доступ к определенной строке в CSV-файле (аналогично getline ()).Мне разрешено использовать только стандарт ANSI 89/99.Вот что я написал до сих пор:
char * getline(FILE * fi,size_t line_length,size_t line_number)
{
size_t i;
char * aux_string;
char * p;
if (fi==NULL)
return NULL;
if ((aux_string = malloc(line_length*sizeof(char)))==NULL)
return NULL;
i=0;
while(fgets(aux_string,line_length,fi)!=NULL||feof(fi)!=0)
{
if (i==line_number)
{
if ((p=strchr(aux_string,'\n'))!=NULL)
{
*p='\0';
}
return aux_string;
}
i++;
}
return NULL;
}
Это работает довольно хорошо для одного вызова getline ().Однако, если функция вызывается так, как показано в примере ниже:
puts(getline(file_a,MAX_LENGTH,0));
puts(getline(file_a,MAX_LENGTH,0));
Она выводит строку в файле, расположенную непосредственно ниже, а также нужную строку.Как я могу избежать этого?Что может быть причиной этого?Спасибо.