16,472
社区成员
发帖
与我相关
我的任务
分享
//000 0000
//001 b8e6
//002 f800
//003 b832
//004 0000
//以下省略。。上面这些是1.dat文件中的数据,现有3个数组。ahnum[1024],bhnum[1024],chnum[1024];
//怎样才能将每行的数据按类型存到三个数组中,也就是
//ahnum[0]=000, bhnum[0]=00 chnum[0]=00
//ahnum[1]=001, bhnum[1]=b8 chnum[1]=e6
//ahnum[2]=002, bhnum[2]=f8 chnum[2]=00
//ahnum[3]=003, bhnum[3]=b8 chnum[3]=32
#include <stdio.h>
#define MAXDATA 1000
int abnum[MAXDATA];
unsigned char bhnum[MAXDATA],chnum[MAXDATA];
FILE *f;
char ln[40];
int i,n,v1,v2;
int main() {
f=fopen("1.dat","r");
if (NULL==f) {
printf("Can not open file 1.dat!\n");
return 1;
}
i=0;
while (1) {
if (NULL==fgets(ln,40,f)) break;
if (3==sscanf("%d %2x%2x",&abnum[i],&v1,&v2)) {
bhnum[i]=(unsigned char)(v1);
chnum[i]=(unsigned char)(v2);
} else {
printf("line %d format error:%s",i+1,ln);
}
i++;
if (i>=MAXDATA) {
printf(">=%d data ignored!\n",MAXDATA);
break;
}
}
fclose(f);
n=i;
for (i=0;i<n;i++) {
printf("ahnum[%d]=%03d, bhnum[%d]=%02x chnum[%d]=%02x\n",i,ahnum[i],i,bhnum[i],i,chnum[i]);
}
return 0;
}