散分 ,顺便请问有关问题

散分 ,顺便请教问题
文本文件内容如下:
0x00,   0x00,   0x02,   0x30,   0x00,   0x00,   0x00,   0x00,   0x25,   0x01,   0x01,   0x10,   0x01,   0x02,   0x00,   0x00,
0x00,   0x00,   0x00,   0x00,   0x00,   0x00,   0x00,   0x00,   0x00,   0xb5,   0xd8,   0xcf,   0xc2,   0xa3,   0xb1,   0xb3,
0xac,   0xca,   0xd0,   0xa1,   0xa1,   0xa1,   0xa1,   0xa1,   0xa1,   0xa1,   0xa1,   0xa1,   0xa1,   0xca,   0x25,   0x01
比如说我现在想从这个文本文件的0x25开始读取,然后把读取出来的数据在屏幕上打印出来   ,请问这个读取数据的过程是怎样做的   ?具体是   如何实现的?谢谢,请高手帮帮我


------解决方案--------------------
从文件的头指针开始一个一个读下去,
当然,在这个过程中要保留四个字符
比如生成一个四个空间的字符数组
每读取下一个,那么就把
2-〉1,3-〉2,4-〉3移动一个位置,然后把新读取近来的字符
添加到末尾 4 这个位置,判断它是不是 0X25
然后

------解决方案--------------------
先接分,再看题目
------解决方案--------------------
同意楼上
------解决方案--------------------
/*-----------------------------

http://community.csdn.net/Expert/TopicView3.asp?id=5746261

*---------------------------*/

#include <stdlib.h>
#include <stdio.h>

#define WORD_MAXLEN 8
char buf[WORD_MAXLEN];
int idx;
/**
@ret
0 - ok
-1 -error
**/
int read(FILE *fp)
{
int c;
while(1)
{
c = getc(fp);
switch(c)
{
case ', ':
buf[idx] = '\0 ';
idx=0;
return 0;;
case '\n ':
break;
case EOF:
return -1;

default:
buf[idx++] = c;
}
}
}

/* just for demostration , no error handler */
int main(int argc, char**argv)
{
FILE *in = stdin;
int data;
int started = 0;

if(argc> 1)
{
in = fopen(argv[1], "r ");
if (!in)
exit(1);
}



while (read(in) != -1)
{

/* str form */
printf ( "\nstr: %4s ", buf);

/* int form */
sscanf (buf, "%x ", &data);
if (data == 0x25)
started = 1;

if (started)
printf ( ", int: %x ", data);
}

if (argc> 1)
fclose (in);
}

-------------------- output -------------------
tr: 0x00
str: 0x00
str: 0x02
str: 0x30
str: 0x00
str: 0x00
str: 0x00
str: 0x00
str: 0x25, int: 25
str: 0x01, int: 1
str: 0x01, int: 1
str: 0x10, int: 10
str: 0x01, int: 1
str: 0x02, int: 2
str: 0x00, int: 0
str: 0x00, int: 0
str: 0x00, int: 0
str: 0x00, int: 0
str: 0x00, int: 0
str: 0x00, int: 0
str: 0x00, int: 0
str: 0x00, int: 0
str: 0x00, int: 0
str: 0x00, int: 0
str: 0x00, int: 0
str: 0xb5, int: b5
str: 0xd8, int: d8
str: 0xcf, int: cf
str: 0xc2, int: c2
str: 0xa3, int: a3
str: 0xb1, int: b1
str: 0xb3, int: b3
str: 0xac, int: ac
str: 0xca, int: ca
str: 0xd0, int: d0
str: 0xa1, int: a1
str: 0xa1, int: a1
str: 0xa1, int: a1
str: 0xa1, int: a1
str: 0xa1, int: a1
str: 0xa1, int: a1