标题:求助C实现对TXT文件指定行数据提取
只看楼主
paenfree
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-11-25
 问题点数:0 回复次数:0 
求助C实现对TXT文件指定行数据提取
已知如下程序,我在单位搞网络的,就大学的时候学过一点C,今天领导临时抓我来编
,不胜感激,临帖涕零……
但是写完之后在UNIX下的C执行之后报错,貌似没有new 这个函数,也没有conio.h这个头文件啊,能不能帮改进一下。但是我使用的是UNIX上的VI编写,貌似没有conio.h的头文件跟NEW函数,那个高人帮我改写一下啊!不胜感激
#include <stdio.h>
#include <string.h>
#include <conio.h>

void main()
{
char *pBuff;
FILE *pf = fopen("data.txt","rb");
fseek(pf,0,SEEK_END);
int len =ftell(pf);
if(len==0)
{
printf("文件是空的\n");
fclose(pf);
return;
}

pBuff = new char[len];
memset(pBuff,0,len);
fseek(pf,0,SEEK_SET);
fread(pBuff,len,1,pf);
fclose(pf);

char *pBuffLine = new char[len];
char *pos;
pos = pBuff;
int i,j=0;
int linelen;
printf("行号:");
int LineNum;
scanf("%d",&LineNum);
int num =0;
for(i=0;i<len;i++)
{
if(*pos == 0xD && *(pos+1) ==0xA)
{
num++;
linelen = pos -(pBuff+j);
memset(pBuffLine,0,len);
memcpy(pBuffLine,pBuff+j,linelen);
*(pBuffLine+linelen)=0;
if(num == LineNum)
{
printf("%s\n",pBuffLine);
return;
}
pos+=2;
j=pos-pBuff;
continue;
}
pos++;
}

if(j!=len)
{
num++;
linelen =len-j;
memset(pBuffLine,0,len);
memcpy(pBuffLine,pBuff+j,linelen);
*(pBuffLine+linelen)=0;
if(num == LineNum)
{
printf("%s\n",pBuffLine);
return;
}
}


}
搜索更多相关主题的帖子: TXT 数据 
2008-11-25 16:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-246153-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.690748 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved