c语言函数fread的调用形式,C语言的问题,fread和fgets的区别是什么?
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的区别是什么?相关推荐
- c语言fwrite函数结构体,fwrite函数的一般调用形式是什么?
fwrite函数的一般调用形式是"fwrite(buffer,size,count,fp);":其中,buffer是准备输出的数据块的起始地址,size是每个数据块的字节数,cou ...
- C语言 函数声明和调用 - C语言零基础入门教程
目录 一.简介 二.函数声明和定义 1.函数声明:不需要实现这个函数的功能 2.函数定义:必须实现这个函数的功能 三.函数调用 四.函数形参和实参 五.猜你喜欢 零基础 Python 学习路线推荐 : ...
- c语言函数之间互相调用符号,如何实现C和C++函数互相调用
链接库头文件: //head.h class A { public: A(); virtual ~A(); int gt(); int pt(); private: int s; }; .cpp // ...
- c#调用c语言的自定义函数,[转]在C#中调用C语言函数(静态调用Native DLL,Windows Microsoft.Net平台)...
对于不太了解.Net的人,如果想要了解.Net,我必须给他介绍P/Invoke.P/Invoke是什么呢?简单地说,就是在.Net中调用本地代码(Native code)的一种解决方案.所谓" ...
- C语言 函数的嵌套调用
C语言的函数定义是互相平行.独立的,也就是说,在定义函数时,一个函数内不能再定义另一个函数,即不能嵌套定义,但可以嵌套调用函数,即,在调用一个函数的过程中,又调用另一个函数. 如下图所示:表示的是两层 ...
- C语言函数之递归调用
提示:本文主要是掌握函数的递归 函数递归 前言 什么是递归 递归的两个必要条件 递归与迭代的关系 递归函数的优缺点 什么时候使用递归 总结 前言 函数是学习C语言的最重要知识点之一,要学好这门编程语言 ...
- ios 调用c语言函数指针,第09天C语言(08):指向函数的指针的应用场景
#pragma mark 指向函数的指针的应用场景 ###pragma mark 概念 ###pragma mark 代码 #include int sum(int v1,int v2) { retu ...
- c语言函数名本质是指针,C语言的本质(12)——指针与函数
往往,我们一提到指针函数和函数指针的时候,就有很多人弄不懂.下面详细为大家介绍C语言中指针函数和函数指针. 1.指针函数 当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,以用于需 ...
- c语言函数中使用指针变量,C语言函数指针变量
C语言函数指针变量 导语:在C语言中规定,一个函数总是占用一段连续的内存区, 而函数名就是该函数所占内存区的首地址. 这就是函数指针变量.下面是相关介绍,仅供参考! 在C语言中规定,一个函数总是占用一 ...
最新文章
- 西湖大学三位资深博导自述:我与我的第一位博士生
- golang gopsutil 进程 系统硬件 docker 信息获取
- 高效程序员的45个习惯 pdf_高效瑜伽人的 5 个习惯,你get到了几个?
- zookeeper分布式锁避免羊群效应(Herd Effect)
- php7.0康乐安装_Ubuntu安装php7.0环境
- 支付宝将砸十亿支持中国女足发展:她们才是第一女子天团
- UVA10359 Tiling【大数+递推】
- hbase java客户端_【HBase教程】(八)HBase JAVA 客户端API使用
- git因commit的记录太大导致push失败解决方法
- sublime改成中文简体及菜单变成中文
- 拼多多增长黑客模式实战
- python转换字符编码_python 字符串编码转换
- 对绝对地址赋值的问题
- springboot使用 poi 导入导出Excel工具类
- C++常用头文件汇总
- Kibana - KQL语法
- 软件测试 - 项目实战篇
- MySQL中的级联删除与更新策略on delete restrict on update restrict
- 操作系统指纹探测实验
- ClickHouse 数据导出导入
热门文章
- php for循环 循环奇数,php – Foreach,每个n项的特殊处理(奇数,甚至例如)
- mysql将sql转为关系代数_关系数据库基础:关系代数运算知识笔记
- python123作业怎么提交_python分析作业提交情况
- Web UI⾃动化测试平台,专治Web 的各种疑难杂症。
- PAT_B_1073_C++(20分)
- 【编译原理】FIRSTVT和LASTVT求法
- 普中科技开发板使用说明书_百度大脑加持,米尔科技FZ3深度学习计算卡评测
- 图论--Floyd总结
- POJ3614防晒霜 这个贪心有点东西(贪心+优先队列)
- linux GCC、GDB、Makefile