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++的streanstream:
#include <sstream>
#Include <string>
string num2str(double i)
...{
stringstream ss;
ss<<i;
return ss.str();
......
http://www.100gps.com/html/index.html 。 地图是上海 ,说明上一次定位是在上海, 或者是上海的某个强人做的 地图,正版的 凯立德第一次用, 地图应该是在深圳 c地图,你可以在功能——系统——GPS参数里面,设置端口, 一般都是com2或者是com4,波特率基本都是4800,然后你再试试能定位吗! 不行, ......
1) 什么是预编译,何时需要预编译:总是使用不经常改动的大型代码体。
程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。
2) char * const p;
char const * p
const char *p ......