- 论坛徽章:
- 0
|
我想把一个文件(1.txt)中的数据(16进制) 提取出我想要的 两个字节。
现在调用一个fgets函数每次读取一行,这一行中的第27和28个数据是我想要的。
然后调用了sscanf函数读取这两个数,然后存到另外一个文件(1new.txt)中。程序如下:
红色的语句虽然可以实现这个功能但是显得很笨拙,有没有其他更好的方法实现这个功能,比如用一个循环实现红色代码部分的功能? 希望高手指教,谢谢。
#include<stdio.h>
#define FILENAME1 “1.txt.txt"
#define FILENAME2 "1new.txt"
#define MAX 1000
int main()
{
char line[MAX];
FILE *fp, *fd;
int data[MAX];
fd = fopen(FILENAME2,"w");
if(fd == NULL)
printf("Error creating outputfile.\n");
fp = fopen(FILENAME1,"r");
if(fp == NULL)
printf("Error opening inputfile.\n");
while( fgets(line, MAX, fp) != NULL){
sscanf(line,"%x %x %x %x %x %x %x %x %x %x %x %x
%x %x %x %x %x %x %x %x %x %x %x %x
%x %x %x %x %x %x %x %x %x %x %x %x
%x %x %x %x %x %x %x %x %x %x %x %x",
&data[0],&data[1],&data[2],&data[3],
&data[4],&data[5],&data[6],&data[7],
&data[8],&data[9],&data[10],&data[11],
&data[12],&data[13],&data[14],&data[15],
&data[16],&data[17],&data[18],&data[19],
&data[20],&data[21],&data[22],&data[23],
&data[24],&data[25],&data[26],&data[27],
&data[28],&data[29],&data[30],&data[31],
&data[32],&data[33],&data[34],&data[35]);
fprintf(fd, "%x%x\n", data[28],data[27]);
}
fclose(fp);
fclose(fd);
return 0;
}
1.txt文件中的数据
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 34 00 26 00 6F 00 E4 12 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 46 00 2F 00 78 00 AB B5 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 6E 00 34 00 8C 00 5C 57 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 68 00 31 00 89 00 0D 99 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 84 00 31 00 97 00 AA 39 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 54 00 30 00 7F 00 B1 72 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 66 00 37 00 88 00 06 0D 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 5C 00 28 00 83 00 3B B7 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 4C 00 2B 00 7B 00 0B AC 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 4A 00 2D 00 7A 00 42 35 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 6C 03 A6 01 0B 02 44 8C 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 42 00 2B 00 76 00 F4 5A 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 52 00 2B 00 7D 5E 00 D9 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 54 00 2F 00 7F 00 F8 BD 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 3E 00 2E 00 74 00 AC CE 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 5C 00 2E 00 83 00 A2 90 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 32 00 2C 00 6E 00 9F C4 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 3A 00 29 00 72 00 86 33 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 40 00 2C 00 75 00 CA D5 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 46 00 28 00 78 00 86 E4 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 0E 00 2B 00 5C 00 2A D2 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 2A 00 26 00 6A 00 36 77 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 28 00 25 00 69 00 F9 32 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 44 00 2E 00 77 00 61 58 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 26 00 2A 00 68 00 85 55 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 22 00 29 00 66 00 F7 EB 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 22 00 29 00 66 00 F7 EB 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 62 00 2C 00 86 00 10 2D 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 2A 00 29 00 6A 00 D8 A3 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 7A 00 32 00 92 00 9C 4C 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 72 00 2F 00 8E 00 E1 25 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 52 00 2E 00 7D 5E 00 9C 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 68 00 35 00 89 00 FC 53 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 40 00 28 00 75 00 3B 1F 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 42 00 29 00 76 00 9C B7 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 6E 00 2D 00 8C 00 8C BF 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 30 00 28 00 6D 00 7D 5D 7E
7E 42 FF FF A3 38 06 01 00 00 00 00 00 2C 86 7E 7E 42 FF FF A2 38 0A 01 00 02 00 28 00 2C 00 69 00 8E C1 7E
[ 本帖最后由 xfmy 于 2007-5-20 13:02 编辑 ] |
|