一个函数该如何使用?我们最先要了解的就是这个函数的语法以及具体的含义是什么,所以今天我们就来看一看fgets函数在实际的运用过程当中是如何使用的,希望能给大家带来一定的帮助。

fgets函数——linux中fgets函数如何理解

fgets函数是从输入流中读取一个字符串,它是遇到换行符,或者传输了限定的字符数量,或者遇到EOF文件尾就停止(它会把换行符也加到接收字符串里面)。fgets函数的原型是:

char*fgets(char*s,intn,FILE*stream);

函数参数说明:第一个参数是接收参数,用于接收输入文件流的字符串,第二个参数n是字符串传输长度限定参数,表示当接收了n-1个字符时停止写入,第三个参数是文件流(就是fopen函数返回的文件流),也可以是输入流stdin。使用这个函数需要include头文件。

fgets函数和scanf的%s参数的区别是:scanf接收输入字符串时,是遇到空白字符就停止,而且scanf无法限定接收字符串的长度。

fgets函数如何用

fget函数的原型如下:char*fgets(char*buf,intn,FILE*fp)

功能:从文件流读取一行,送到缓冲区,使用时注意以下几点:

1.当遇到换行符或者缓冲区已满,fgets就会停止,返回读到的数据,值得注意的是不能用fgets读二进制文件,因为fgets会把二进制文件当成文本文件来处理,这势必会产生乱码。

2.每次调用,fgets都会把缓冲区的最后一个字符设为null,这意味着最后一个字符不能用来存放需要的数据,所以如果有一行,含有LINE_SIZE个字符(包括换行符),要想把这行读入缓冲区,请把参数n设为LINE_SIZE+1

3.由结论1可推出:给定参数n,fgets只能读取n-1个字符(包括换行符),如果有一行超过n-1个字符,那么fgets返回一个不完整的行,也就是说,只读取该行的前n-1个字符,但是,缓冲区总是以null字符结尾,对fgets的下一次调用会继续读该行。

用法举例:

读取一个文件并打印

FILE*fp=fopen(argv[1],”r”);

charbuf[200];

while(fgets(buf,200,fp)!=NULL){/*每行的字符不能超过199才能正常工作*/

printf(“%s”,buf);

}

注意打印不用使用printf(“%s/n”,buf),因为它会把换行符也读进去

以上就是fgets函数该如何使用的所有内容,学习函数最先就是学习函数的一些语法,以及这些参数的含义,只有这些弄懂了,在实际运用当中才会熟练的运用,如果大家还想了解更多与之有关的内容,欢迎关注我们

linux 内核 fget,fgets函数 linux中fgets函数怎么用相关推荐

  1. 【Linux 内核 内存管理】Linux 内核堆内存管理 ① ( 堆内存管理 | 内存描述符 mm_struct 结构体 | mm_struct 结构体中的 start_brk、brk 成员 )

    文章目录 一.堆内存管理 二.内存描述符 mm_struct 结构体 三.mm_struct 结构体中的 start_brk.brk 成员 一.堆内存管理 Linux 操作系统中的 " 堆内 ...

  2. linux内核学习之三:linux中的32位与64位

    linux内核学习之三:linux中的"32位"与"64位" 在通用PC领域,不论是windows还是linux界,我们都会经常听到"32位" ...

  3. 嵌入式linux内核启动过程,嵌入式Linux:ARM Linux启动流程

    ARM Linux启动流程大致为:bootloader---->kernel---->root filesystem.bootloader 是一上电就拿到cpu 的控制权的,而bootlo ...

  4. linux内核启动分析 三,Linux内核分析 实验三:跟踪分析Linux内核的启动过程

    贺邦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一. 实验过程 ...

  5. Linux内核开发_1_编译LInux内核

    目录 1. 准备工作 1.1 学习环境 1.2 下载Linux内核源码 1.3 解压Linux内核 1.4 目录结构介绍 2. Linux内核配置 2.1 配置选项 1. make config 2. ...

  6. 一文了解linux内核,一文了解Linux的系统结构

    什么是 Linux ? 如果你以前从未接触过Linux,可能就不清楚为什么会有这么多不同的Linux发行版.在查看Linux软件包时,你肯定被发行版.LiveCD和GNU之类的术语搞晕过.初次进入Li ...

  7. Linux内核入门-如何获取Linux内核源代码、生成配置内核

    如何获取Linux内核源代码 如何获取Linux内核源代码 下载Linux内核当然要去官方网站了,网站提供了两种文件下载,一种是完整的Linux内核,另一种是内核增量补丁,它们都是tar归档压缩包.除 ...

  8. 在win10查看本机linux的文件,Windows 10变身开发者利器:内置Linux内核,轻松查看Linux子系统文件...

    原标题:Windows 10变身开发者利器:内置Linux内核,轻松查看Linux子系统文件 来源:创事记 终于!在Windows里可以访问Linux文件了. 这表明,微软插入开源界的触角,越来越深入 ...

  9. linux内核培训广州,嵌入式Linux驱动开发高级培训班-华清远见嵌入式培训中心

    课程目标 本课程以案例教学为主,系统地介绍Linux下有关FrameBuffer.MMC卡.USB设备的驱动程序开发.参加本课程学习的学员,因为具备了Linux设备驱动开发基础,所以本课程针对性较强, ...

  10. 查看linux内核的编译时间,linux内核编译步骤

    linux内核编译步骤 对于linux新手来说,编译内核相对有一些难度,甚至不知道如何入手,我通过在网上收集这方面的资料,最终编译成功.现在我归纳了一下,写出这一篇还算比较详细的步骤,希望能对各位新手 ...

最新文章

  1. Android 判断网络状态
  2. freemind的一个大bug,一周的数据啊
  3. 找到IIS Express配置/配置数据库文件在哪里?
  4. 基于 Storyboard 多种方式的页面跳转、参数传递
  5. 【数据平台】python中文分词工具jieba
  6. 学习开发语言 python 资料
  7. (五)门级电路低功耗设计优化
  8. 服务器java项目转移到另一个盘_将svn的项目从一台服务器转移到另外一台服务器...
  9. faker假数据php,Faker首页、文档和下载 - 生成假数据的 PHP 库
  10. Linux打开文件操作的注意事项
  11. 被称为“圣经”的《计算机体系结构》
  12. 新消费业内人说不出口的10个问题
  13. 错误: 找不到或无法加载主类 org.sang.BlogserverApplication
  14. 开发者投稿—百度大脑新品体验之肤色检测
  15. 廖雪峰python实战(一)
  16. ChatGPT一战封神,和它聊完后,我更想躺平了
  17. 云计算平台项目团队组织架构与缘起
  18. LeetCode 417. 太平洋大西洋水流问题【dfs】
  19. 软件系统的标准化和产品化
  20. 高防cdn的构建简单吗?高防cdn有什么优势?

热门文章

  1. hrbust华为杯———G真假小妖
  2. 拉普拉斯变换笔记(2)
  3. pageOffice 实现PDF的在线查看
  4. 设计模式学习笔记(十五)-桥接模式
  5. 使用操作:3个步骤,怎么找抖音达人合作
  6. 小米Note手机安装Linux
  7. 劳易测光电传感器GS 61/6
  8. GB30871-2022正式实施,数字化开票规范化、便捷化
  9. 空间两个直线之间的距离和公垂线
  10. 怎么下载maven其他版本