zoukankan      html  css  js  c++  java
  • 归一化之readline学习

    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)

  • 相关阅读:
    0806 c#总复习
    0804 递归
    0808 html基础
    0803结构体,枚举类型
    0801out传值
    0731函数
    0730特殊集合
    0728多维数组,ArrayList集合
    js 获取url链接的任意参数
    jq dom操作
  • 原文地址:https://www.cnblogs.com/xiangshancuizhu/p/2250139.html
Copyright © 2011-2022 走看看