求助vc++ 提取TXT中一些信息

来源:百度知道 编辑:UC知道 时间:2024/06/09 17:33:32
我要从一个TXT文件中提取信息
这个TXT保存的是一个网页的原代码
代码如下<tr>
<td class="bodyCopyBlackLarge"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top" class="bodyCopyBlackLargeSpaced"><div align="left"><strong>1.</strong></div></td>
<td class="bodyCopyBlackLargeSpaced"><strong>Meta data</strong><br>

Prothman, B.;<br>

<A href='/xpl/RecentIssue.jsp?punumber=45'>Potentials, IEEE</A><br>

Volume 19, 
<a href='/xpl/tocresult.jsp?isnumber=17867'>Issue 1</a>, 
Feb-Mar 2000
Page(s):20
-
23
<br>
Digital Object Identifier 10.1109/45.825636
&

将上述代码拷贝到一个文本文档中,文本文档取名为“text.txt”,然后执行下述程序即可。
不足之处在于回车都输出来了。html代码中回车太多的话,可读性不好。
==========================================
#include <stdio.h>
#include <malloc.h>

int main()
{
FILE *fp;
int flen;
fp = fopen ("text.txt","rb");
if(fp==NULL)
{
printf("can't open data file.\n");
return 0;
}
fseek(fp,0L,SEEK_END);//定位到文件末尾
flen=ftell(fp); //求文件大小
printf("file length = %d\n",flen);
fseek(fp,0L,SEEK_SET); //定位到文件头

char * data1 = (char*)malloc(sizeof(char)*flen);
fread(data1,flen,1,fp); //一次性读取文件

char * data2 = (char*)malloc(sizeof(char)*flen);
int flen2=0; //存放最后结果的长度
int flag=0;
for (int i=0;i<flen;i++)
{
if (data1[i]=='>')
flag = 1;
if (data1[i]=='<')
flag = 0;
if (flag==1 && data1[i]!='>' )