在 C 代码中仅从文件中读取一行



我的程序正确地从文件中读取特定行,但是它会从我指定的行中读取整个文件。我尝试一次只打印一行。我怎样才能让它只读一行?

代码:

int main() 
{
  int lineNumber = 5;
  static const char filename[] = "Text.txt";
  FILE *file = fopen(filename, "r");
  int count = 0;
  if ( file != NULL )
  {
    char line[256]; /* or other suitable maximum line size */
    while (fgets(line, sizeof line, file) != NULL) /* read a line */
    {
        if (count == lineNumber)
        {
            printf("%s", line);
            //in case of a return first close the file with "fclose(file);"
        }
        else
        {
            count++;
        }
    }
    fclose(file);
  }
}

找到所需的行后,只需使用 break 退出循环:

if (count == lineNumber)
{
  printf("%s", line);
  break;
}
if (count == lineNumber)
        {
            printf("%s", line);
            //in case of a return first close the file with "fclose(file);"
            count++;
        }
当您

得到指定的行时count递增,否则count将不会继续指示下一行。这就是为什么您的代码在获得指定的行后打印所有行的原因。因为行号一旦等于行号count就不会增加。所以添加count++.
您甚至可以break循环,因为在获得指定行后不需要读取其余行。

相关内容

  • 没有找到相关文章