所以我正在研究一个用于将fgetc
一行读入缓冲区的函数。所以我可以随意使用该缓冲区,然后用下一行重新填充缓冲区。我的函数有效,但是我必须在 for 循环之外重复代码来处理最后一行,如下所示:
for(i = 0, c = 1; ch != EOF; i++)
{
ch = fgetc(grab);
if(ch == 0x0A)
{
/*Process Line*/
c = 1;
}
else
{
linetmp = realloc(line, (c + 1) * sizeof(char));
if(!linetmp)
{
free(line);
free(url);
printf("\nError! Memory allocation failed!");
return 1;
}
line = linetmp;
line[c - 1] = ch;
line[c] = 0x00;
c++;
}
}
/*repeat if(ch == 0x0A) statement*/
我宁愿在同一个循环中完成这一切,但不确定我将如何去做。任何帮助将不胜感激!