69,370
社区成员
发帖
与我相关
我的任务
分享
http://blog.csdn.net/limuyun/article/details/6577093
//如果要改为
char A[MAXLN][4];
//则必须
int i0,i1,i2,i3;
//...
if (4==sscanf(ln,"%2x %2x %2x %2x",&i0,&i1,&i2,&i3)) {
A[n][0]=(char)i0;
A[n][1]=(char)i1;
A[n][2]=(char)i2;
A[n][3]=(char)i3;
} else {
printf("line %d format error:%s\n",n+1,ln);
break;
}
//...
for (i=0;i <n;i++) printf("%4d %02X %02X %02X %02X\n",i,(unsigned char)A[i][0],(unsigned char)A[i][1],(unsigned char)A[i][2],(unsigned char)A[i][3]);
//...
#include <stdio.h>
#include <string.h>
#define MAXLN 10000
int A[MAXLN][4];
FILE *f;
char ln[80];
int i,n;
int main() {
f=fopen("data.txt","r");
if (NULL==f) {
printf("Can not open file data.txt!\n");
return 1;
}
n=0;
while (1) {
if (NULL==fgets(ln,80,f)) break;
if ('\n'!=ln[strlen(ln)-1]) {
printf("line %d too long:%s\n",n+1,ln);
break;
}
if (4!=sscanf(ln,"%2x %2x %2x %2x",&A[n][0],&A[n][1],&A[n][2],&A[n][3])) {
printf("line %d format error:%s\n",n+1,ln);
break;
}
n++;
if (n>=MAXLN) {
printf("line >%d ignored!\n",MAXLN);
break;
}
}
fclose(f);
for (i=0;i<n;i++) printf("%4d %02X %02X %02X %02X\n",i,A[i][0],A[i][1],A[i][2],A[i][3]);
return 0;
}