求助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;
}
}
}