如何从此文本列表中取出第一行?

Nat*_*ibi 1 c function eof file-read

我有一个包含文本的列列表,但我只是从这个列表中获取第一行。怎么做?

#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;
}
Run Code Online (Sandbox Code Playgroud)

ana*_*ciu 5

您的停止条件是EOF,所有内容都将被读取到文件末尾,您需要的是读取直到找到换行符,此外EOF( -1) 应与int类型进行比较。

你需要这样的东西:

#include <stdio.h>
#include <stdlib.h>

int main()
{
  FILE *fr;
  int c;

  if(!(fr = fopen("prog.txt", "r"))){ //check file opening
    perror("File error");
    return EXIT_FAILURE; 
  }

  while ((c = fgetc(fr)) != EOF && c != '\n')
  {
    printf("%c",c); /*  display on screen*/
  }
  fclose(fr);
  return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

这是尊重你的代码读取行charchar,你也有库功能,让您阅读整条生产线,如fgets()用于便携式一段代码,或者getline()如果你没有在Windows,或者下载一个便携版本,当然的你可以自己做这个这个