博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
归一化之readline学习
阅读量:5998 次
发布时间:2019-06-20

本文共 790 字,大约阅读时间需要 2 分钟。

char* readline(FILE *input){	int len;	if(fgets(line,max_line_len,input) == NULL)		return NULL;	while(strrchr(line,'\n') == NULL)	{		max_line_len *= 2;		line = (char *) realloc(line, max_line_len);		len = (int) strlen(line);		if(fgets(line+len,max_line_len-len,input) == NULL)			break;	}	return line;}

fgets函数解释:

从流中读一行或指定个字符, 原型是char *fgets(char *s, int n, FILE *stream);从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。

  形参注释:*s结果数据的首地址;n-1:一次读入数据块的长度,其默认值为1k,即1024;stream文件指针

  例:如果一个文件的当前位置的文本如下

  Love ,I Have

  But ........

  如果用 

  fgets(str1,4,file1);

  则执行后str1="Lov",读取了4-1=3个字符,

  而如果用 

  fgets(str1,23,file1);

  则执行str1="Love ,I Have",读取了一行(包括行尾的'\n',并自动加上字符串结束符'\0')。

strrchr用法:

strrchr() 函数查找字符在指定字符串中从后面开始的第一次出现的位置,如果成功,则返回指向该位置的指针,如果失败,则返回 false。

语法

  strrchr(string,char)

转载地址:http://bxwmx.baihongyu.com/

你可能感兴趣的文章
【REACT NATIVE 系列教程之五】NAVIGATOR(页面导航)的基本使用与传参
查看>>
第四章 查询语句:MongoDb VS MySql 4.3
查看>>
Android反编译(未混淆的apk)
查看>>
centos安装qt开发环境
查看>>
java异常的分类
查看>>
NavigationView使用过程的问题解决
查看>>
利用rebase来压缩多次提交
查看>>
MySQL hash index VS Btree index
查看>>
aliyun 镜像
查看>>
算术-几何平均不等式的证明
查看>>
openstack配置增加
查看>>
概念理解之同步,异步,阻塞,非阻塞
查看>>
python文件读写学习
查看>>
JDBC的使用
查看>>
调整TiddlyPedia图标的位置。
查看>>
写给兔小白的js教程(1)
查看>>
企业内部系统账户安全策略
查看>>
eclipse 编码新问题
查看>>
-Android -线程池 批量上传图片 -附php接收代码
查看>>
Android开发10——Activity的跳转与传值
查看>>