C语言 文件读写 fgets 函数

ChatGPT 3.5 国内中文镜像站免费使用啦

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门


一.fgets函数简介

fgets 函数功能为从指定的流中读取数据,每次读取一行。其原型为:

#include <stdio.h>
#include <stdlib.h>
/*
*描述:从指定的流 stream 读取一行,并把它存储在str所指向的字符串内。当读取(n-1)个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止
*
*参数:
*   [in]  str: 缓冲区,用来存放要读取的字符串;
*   [in]  n:   要读取的最大字符数(包括最后的空字符),通常是使用以 str 传递的数组长度;
*   [in]  stream:文件指针句柄;
*
*返回值:如果成功,该函数返回读取到的数据,内容和 str 缓冲区数据一样。如果到达文件末尾或者没有读取到任何字符,str 的内容保持不变,并返回一个空指针。如果发生错误,返回一个空指针
*/

char *fgets(char *str, int n, FILE *stream);

如果文件中的该行,不足 n-1 个字符,则读完该行就结束;

如若该行(包括最后一个换行符)的字符数超过 n-1 ,则 fgets 只返回一个不完整的行,但是,缓冲区总是以 NULL 字符结尾,对 fgets 的下一次调用会继续读该行;

函数成功将返回 stream,失败或读到文件结尾返回 NULL 。因此不能直接通过 fgets  的返回值来判断函数是否是出错而终止的,应该借助 feof 函数或者 ferror 函数来判断;


二.fgets函数使用

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 文件读写 fgets 函数
//@Time:2021/07/29 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/

#include <stdio.h>

int main()
{
   FILE *fp;
   char str[60];

   /* 打开用于读取的文件 */
   fp = fopen("file.txt" , "r");
   if(fp == NULL) {
      perror("打开文件时发生错误");
      return(-1);
   }
   if( fgets (str, 60, fp)!=NULL ) {
      /* 向标准输出 stdout 写入内容 */
       printf("%s \n", str);
   }
   fclose(fp);
   
   return(0);
}


/*
 
 输出:
 
 假设我们有一个文本文件 file.txt,它的内容如下。文件将作为实例中的输入:
 www.codersrc.com - c语言教程
 让我们编译并运行上面的程序,这将产生以下结果:
 www.codersrc.com - c语言教程
 
 */

三.猜你喜欢

  1. C语言 数组下标越界和内存溢出区别
  2. C语言 使用指针遍历数组
  3. C语言 指针和数组区别
  4. C语言 指针数组和数组指针区别
  5. C语言 野指针
  6. C语言 函数值传递和址传递
  7. C语言 函数不定长参数
  8. C语言 函数指针
  9. C语言 指针函数
  10. C语言 回调函数 callback
  11. C语言 #pragma once
  12. C语言 #include <> 与 #include “” 区别
  13. C语言 const 修饰函数参数
  14. C语言 const 和 define 区别
  15. C语言 #运算符
  16. C语言 ##运算符
  17. C语言 __VA_ARGS__
  18. C语言 ##__VA_ARGS__
  19. C语言 函数不定长参数 ##__VA_ARGS__经典案例
  20. C语言 va_start / va_end / va_arg 自定义 printf 函数
  21. C语言 main 函数
  22. C语言 main 函数参数 main(int argc, char *argv[])
  23. C语言 局部变量
  24. C语言 全局变量
  25. C语言 全局变量和局部变量区别
  26. C语言 static
  27. C语言 extern

ChatGPT 3.5 国内中文镜像站免费使用啦
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容