fgets函数用来从文件中读入字符串。fgets函数的调用形式如下:fgets(str,n,fp);此处,fp是文件指针;str是存放在字符串的起始地址;n是一个int类型变量。函数的功能是从fp所指文件中读入n-1个字符放入str为起始地址的空间内;如果在未读满n-1个字符之时,已读到一个换行符或一个EOF(文件结束标志),则结束本次读操作,读入的字符串中最后包含读到的换行符。因此,确切地说,调用fgets函数时,最多只能读入n-1个字符。读入结束后,系统将自动在最后加'\0',并以str作为函数值返回。

int fread(void *ptr, int size, int nitems, FILE *stream);

参 数:用于接收数据的地址(指针)(ptr)

单个元素的大小(size)

元素个数(nitems)

提供数据的文件指针(stream)

一个是读字符串,一个是读取指定大小的数据,

当然结果会不一样。

因为如果在未读满n-1个字符之时,已读到一个换行符或一个EOF(文件结束标志),则结束本次读操作,所以fgets之后fp不会越界。

p是指针,

如果

p=strchr(xx[i],'\n');

xx[i]中没有'\n',则p=NULL.

而NULL就是0.就不进入循环,就是说读取字符中,没有遇到换行符。根据fgets()知道最后一个就是字符串结束符‘\0';

如果

xx[i]中有'\n',则p!=NULL,p指向第一个出现换行符的地方。

进入循环,另换行符变成字符串结束符‘\0';

因为‘\0'的ASCII码值为0;

所以写成了*p=0;

不知道说清楚没,希望对你有帮助。

c语言函数fread的调用形式,C语言的问题,fread和fgets的区别是什么?相关推荐

  1. c语言fwrite函数结构体,fwrite函数的一般调用形式是什么?

    fwrite函数的一般调用形式是"fwrite(buffer,size,count,fp);":其中,buffer是准备输出的数据块的起始地址,size是每个数据块的字节数,cou ...

  2. C语言 函数声明和调用 - C语言零基础入门教程

    目录 一.简介 二.函数声明和定义 1.函数声明:不需要实现这个函数的功能 2.函数定义:必须实现这个函数的功能 三.函数调用 四.函数形参和实参 五.猜你喜欢 零基础 Python 学习路线推荐 : ...

  3. c语言函数之间互相调用符号,如何实现C和C++函数互相调用

    链接库头文件: //head.h class A { public: A(); virtual ~A(); int gt(); int pt(); private: int s; }; .cpp // ...

  4. c#调用c语言的自定义函数,[转]在C#中调用C语言函数(静态调用Native DLL,Windows Microsoft.Net平台)...

    对于不太了解.Net的人,如果想要了解.Net,我必须给他介绍P/Invoke.P/Invoke是什么呢?简单地说,就是在.Net中调用本地代码(Native code)的一种解决方案.所谓" ...

  5. C语言 函数的嵌套调用

    C语言的函数定义是互相平行.独立的,也就是说,在定义函数时,一个函数内不能再定义另一个函数,即不能嵌套定义,但可以嵌套调用函数,即,在调用一个函数的过程中,又调用另一个函数. 如下图所示:表示的是两层 ...

  6. C语言函数之递归调用

    提示:本文主要是掌握函数的递归 函数递归 前言 什么是递归 递归的两个必要条件 递归与迭代的关系 递归函数的优缺点 什么时候使用递归 总结 前言 函数是学习C语言的最重要知识点之一,要学好这门编程语言 ...

  7. ios 调用c语言函数指针,第09天C语言(08):指向函数的指针的应用场景

    #pragma mark 指向函数的指针的应用场景 ###pragma mark 概念 ###pragma mark 代码 #include int sum(int v1,int v2) { retu ...

  8. c语言函数名本质是指针,C语言的本质(12)——指针与函数

    往往,我们一提到指针函数和函数指针的时候,就有很多人弄不懂.下面详细为大家介绍C语言中指针函数和函数指针. 1.指针函数 当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,以用于需 ...

  9. c语言函数中使用指针变量,C语言函数指针变量

    C语言函数指针变量 导语:在C语言中规定,一个函数总是占用一段连续的内存区, 而函数名就是该函数所占内存区的首地址. 这就是函数指针变量.下面是相关介绍,仅供参考! 在C语言中规定,一个函数总是占用一 ...

最新文章

  1. 西湖大学三位资深博导自述:我与我的第一位博士生
  2. golang gopsutil 进程 系统硬件 docker 信息获取
  3. 高效程序员的45个习惯 pdf_高效瑜伽人的 5 个习惯,你get到了几个?
  4. zookeeper分布式锁避免羊群效应(Herd Effect)
  5. php7.0康乐安装_Ubuntu安装php7.0环境
  6. 支付宝将砸十亿支持中国女足发展:她们才是第一女子天团
  7. UVA10359 Tiling【大数+递推】
  8. hbase java客户端_【HBase教程】(八)HBase JAVA 客户端API使用
  9. git因commit的记录太大导致push失败解决方法
  10. sublime改成中文简体及菜单变成中文
  11. 拼多多增长黑客模式实战
  12. python转换字符编码_python 字符串编码转换
  13. 对绝对地址赋值的问题
  14. springboot使用 poi 导入导出Excel工具类
  15. C++常用头文件汇总
  16. Kibana - KQL语法
  17. 软件测试 - 项目实战篇
  18. MySQL中的级联删除与更新策略on delete restrict on update restrict
  19. 操作系统指纹探测实验
  20. ClickHouse 数据导出导入

热门文章

  1. php for循环 循环奇数,php – Foreach,每个n项的特殊处理(奇数,甚至例如)
  2. mysql将sql转为关系代数_关系数据库基础:关系代数运算知识笔记
  3. python123作业怎么提交_python分析作业提交情况
  4. Web UI⾃动化测试平台,专治Web 的各种疑难杂症。
  5. PAT_B_1073_C++(20分)
  6. 【编译原理】FIRSTVT和LASTVT求法
  7. 普中科技开发板使用说明书_百度大脑加持,米尔科技FZ3深度学习计算卡评测
  8. 图论--Floyd总结
  9. POJ3614防晒霜 这个贪心有点东西(贪心+优先队列)
  10. linux GCC、GDB、Makefile