linux fgets fread效率,fgets()和fread()函数

fgets():

fgets函数用来从文件中读入字符串。fgets函数的调用形式如下:fgets(str,n,fp);此处,fp是文件指针;str是存放在字符串的起始地址;n是一个int类型变量。函数的功能是从fp所指文件中读入n-1个字符放入str为起始地址的空间内;如果在未读满n-1个字符之时,已读到一个换行符或一个EOF(文件结束标志),则结束本次读操作,读入的字符串中最后包含读到的换行符。因此,确切地说,调用fgets函数时,最多只能读入n-1个字符。读入结束后,系统将自动在最后加'\0',并以str作为函数值返回。

函数原型是:char *fgets(char *s, int n, FILE *stream);

例:

FILE* fp = fopen(filename,"r");

if(fp == NULL)

{

printf("error:fp = null");

}

std::vector Top;

while (!feof(fp))

{

char

line[100]; // FIXME: 这里简单的假设一行不会超过 100 字节

char *p = fgets(line, sizeof(line),

fp);//每次读取一行,注意这里的循环,下次读时自动到下一行啦

if (!p) continue;

while (p &&

isspace(*p))  p++; // 去除行首空格

if (*p == '*') //行末尾,//这里行末尾都加了个‘*’

{

break;

}

if(*p == '#') //一组顶点结束符

{

sscanf(p,"#%d",

&tp.colour);

Top.push_back(tp);

tp.t_p.clear();

continue;

}

}

//

fread():

函数原型

size_t fread ( void *buffer, size_t size, size_t count, FILE

*stream) ;

参 数

buffer

用于接收数据的内存地址,大小至少是size*count字节.

size

单个元素的大小,单位是字节

count

元素的个数,每个元素是size字节.

stream

输入流

返回值

实际读取的元素个数.如果返回值与count不相同,则可能文件结尾或发生错误.

从ferror和feof获取错误信息或检测是否到达文件结尾.

例:

double rbf_gamma;

fread(&(rbf_gamma),sizeof(double),1,fp);

char version_buffer[10];

fread (&version_buffer,sizeof(char),10,fp)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值