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)

  • 相关阅读:
    NuGet包介绍
    修改逻辑文件名
    检查扫描文件系统
    C# Newtonsoft.Json不序列字段
    HierarchyId通过父节点创建一个新的子节点
    常用SQL语句
    redis脚本
    asp.net 的一个简单进度条功能
    .Net C#向远程服务器Api上传文件
    使用IKVM在C#中调用JAVA程序
  • 原文地址:https://www.cnblogs.com/xiangshancuizhu/p/2250139.html
Copyright © 2011-2022 走看看