yuchu3d
2021-12-22 01:12
采纳率: 81.5%
浏览 92

C语言 fgets() 函数返回值的问题,到底什么时候返回NULL

看到书中讲解,fgets()函数在读到文件结尾的时候,或者 读取错误的时候返回 NULL。 但是,这里的 读到文件结尾到底是什么意思?

例如下面的程序:

#include<stdio.h> 

#define   LENG   100 

#define   CHANG   20

int main(void)

{
    char words[LENG];
    
    FILE *fp;
    
    char *ptr;
    
    int num,i=0;
    
    fp=fopen("1221-1.txt","a+");    
    
    ptr=fgets(words, CHANG,fp);
    
    printf("the ptr is %d.\n",*ptr);    
    
    fputs(words,stdout);
    
    fclose(fp);    
    
    return 0;    
    
}

比如上面的程序, 文件中只在开始处 包含 5个a, , 这样 fgets是可以读到结尾的,但是返回值并不是NULL, 而是字符数组的首地址。

能不能讲的 透彻 清晰一点,到底什么时候 返回NULL。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

相关推荐 更多相似问题