易截截图软件、单文件、免安装、纯绿色、仅160KB

C读取文件的一行

刚刚完成的C读取文件一行数据,可以读大量数据的行。
/*
函数功能:
   读取文件的一行,当开辟内存不够时return值为-1,size会给出至少需要的内存大小,
      return值为1时表示此时文件结束,从buffer,size得到最后一行的数据和大小。
输入参数:
   stream:文件流
      size:buffer大小,开辟内存大小
输出参数:
      buffer:存放一行字符
      size:buffer大小,字符数目
返回值:
   -1:读取发生错误
      0:成功读取
      1: 文件结束
备注:
      2010.01.11
*/
int rtFGetLine(FILE *stream,char *buffer,int &size)
{
 static unsigned long offset = 0;
 
 bool fileend = 0;
 unsigned long bufsize = 1024;
 char *buf = NULL, *dest = NULL;
 unsigned short inc = 1;
 
 if(!stream || !buffer)
 {
  return -1;
 }
 while(1)
 {
  bufsize *= inc;
        buf = (char *)malloc(sizeof(char)*bufsize);
  if(NULL == buf)
  {
   return -1;
  }
  memset(buf,0x00,bufsize);
  fseek(stream,offset,SEEK_SET);  
  fread(buf,sizeof(char),bufsize,stream);
  if(ferror(stream))
  {
   return -1;
  }
 
  dest = strchr(buf,'\n');
  if(NULL == dest)
  {
   if( strlen(buf) >= bufsize - 1 )//该行字符大于bufsize
   {
    inc++;
    free(buf);
    buf = NULL;    
    continue;
   }
   
   if(feof(stream))//文件包含结束标志
   {         
  &nbs


相关文档:

c陷阱与缺陷 心得体会 1

      今天比较懒惰,没做题,只是看了一点那本c陷阱与缺陷,说实话读了不多但明显能感觉出这是一本好书,感觉对我来说刚好,不是基础书,但也基本能看懂,而且能学到好多东西,但今天只看了三章,主要是下军旗了,囧,我也只能把我学到的总结下来,学了总比一点都没学要好,我也只能这样安慰自己了。 ......

学习C与Java的类比

大学的时候选修过一个学期日语,当时日语老师对我们说:“对于中国人来讲,学习英语一般是哭着进去,笑着出来;学习日语则是笑着进去,哭着出来”。意思就是说学习英语的时候,入门的时候比较困难,但是只要坚持学下去,转变了汉语的思维习惯时,最近可以把英语学得很好。而日语不同,一方面因为其与汉语的紧密关 ......

经典C/C++面试题(四)

(五)
40. 链表题:一个链表的结点结构
struct Node
{
int data ;
Node *next ;
};
typedef struct Node Node ;
(1)已知链表的头结点head,写一个函数把这个链表逆序 ( Intel)
Node * ReverseList(Node *head) //链表逆序
{
i ......

【入门】用Linux中man命令查询C函数

      大家都知道在Unix/Linux中有个man命令,可以查询常用的命令,函数。可是对于我们这样只知道用"man 函数名"来查询的人来说,会遇到很多问题,比如:
      man read,我想看的是ANSI C中stdio的read函数原型和说明,没想到出来的确是BASH命令的说明,这是怎么回事 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号