getline重新启动

Jup*_*nge 3 c for-loop getline

我在C语言中使用get line函数来读取文件的行。我想遍历该函数,以便可以多次读取文件。但是由于某种原因,它在后续循环的开始仅读取一次(我认为某个指针仍指向最后一行)。我该如何重置?

为了更清楚一点,如果下面的文件中有100行,则最大val将为100,即使最大应为300。

谢谢!

FILE* fp = myfopen (inf, "r");
char* line = NULL;
size_t len = 0;

int num=3
int val=0

for (i=0;i<num;i++)
{
    while (getline (&line, &len, fp) != -1)
    {  
        val++;   
    }
}
Run Code Online (Sandbox Code Playgroud)

Eri*_* J. 5

读完文件末尾后,您必须调用

rewind(fp);
Run Code Online (Sandbox Code Playgroud)

再次从流的开头开始。