C语言 <stdio.h> fgets() 函数

  • 描述

    C库函数char *fgets(char *str, int n, FILE *stream)从指定的流中读取一行并将其存储到str指向的字符串中。当读取(n-1)个字符,读取换行符或到达文件结尾(以先到者为准)时,它将停止。
  • 声明

    以下是fgets()函数的声明。
    
    char *fgets(char *str, int n, FILE *stream)
    
    参数
    • str-这是指向存储读取的字符串的字符数组的指针。
    • n-这是要读取的最大字符数(包括最终的空字符)。通常,使用以str传递的数组的长度。
    • stream-这是指向FILE对象的指针,该对象标识从中读取字符的流。
  • 返回值

    成功后,函数将返回相同的str参数。如果遇到文件末尾且未读取任何字符,则str的内容保持不变,并返回空指针。如果发生错误,则返回空指针。
    示例
    以下示例显示fgets()函数的用法-
    
    #include <stdio.h> 
    
    int main () {
       FILE *fp;
       char str[60];
    
       /* opening file for reading */
       fp = fopen("file.txt" , "r");
       if(fp == NULL) {
          perror("Error opening file");
          return(-1);
       }
       if( fgets (str, 60, fp)!=NULL ) {
          /* writing content to stdout */
          puts(str);
       }
       fclose(fp);
       
       return(0);
    }
    
    让我们假设,我们有一个文本文件file.txt,其内容如下。该文件将用作示例程序的输入-
    
    We are in 2020
    
    现在,让我们编译并运行上面的程序,它将产生以下结果-
    
    We are in 2020