2012-04-19 56 views
1

我试图从文本文件中打印一行,然后转到下一行并打印,直到没有更多的行可以打印。这是我到目前为止,但它只在我第一次运行该程序。试图在c中打印一行文本文件

void ReadFile(FILE *a) 
{ 
    char line[23]; 
    while(fgets(line, 22, a) != NULL) 
    { 
     printf("%s", line); 
    } 
} 
+0

你是否正确关闭了流? - > fclose(fp); – SanBen 2012-04-19 12:19:22

+0

R34lthing,是的,我正在关闭该文件在主循环结束时调用此函数 – CRS 2012-04-19 13:01:55

回答

7

,如果你想这个多次与同FILE对象做你需要将文件指针重新回到起点:

void ReadFile(FILE *a) 
{ 
    char line[23]; 
    rewind(a); 
    while(fgets(line, 22, a) != NULL) 
    { 
     printf("%s\n", line); // Added new line 
    } 
} 

Reference

1

你不是rewind(a)这个文件,所以函数的每一次迭代都从最后一个fgets离开它的地方开始(在你的情况下是EOF)。