【发布时间】:2020-08-24 15:24:44
【问题描述】:
我有一个包含文本的列列表,但我只是从该列表中获取第一行。该怎么做?
#include <stdio.h>
int main()
{
FILE *fr;
char c;
fr = fopen("prog.txt", "r");
while( c != EOF)
{
c = fgetc(fr); /* read from file*/
printf("%c",c); /* display on screen*/
}
fclose(fr);
return 0;
}
【问题讨论】:
-
查看
man 3 getline。也许这就是你想要的 -
while ((c = fgetc(fr)) != EOF)将是一个开始 - 可能while ((c = fgetc(fr)) != EOF && c != '\n')将是您所追求的,但您的意思并不十分清楚。或使用fscanf()阅读“列”。不要忘记检查文件是否已成功打开。 -
它没有给我第一行。我想要第一行。
-
而
c应该是int,而不是char,才能正确处理EOF。