#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
FILE *fp;
long n,a,i,j;
char b,c,x,ch[11];
short d,e=1;
scanf("%d",&i);
if(i==1)
if((fp=fopen("c:\\log\\aaa.dic","rb"))==NULL)
{
printf("Can`t open this file.\n");
exit(1);
}
else
if((fp=fopen("c:\\log\\bbb.dic","rb"))==NULL)
{
printf("Can`t open this file.\n");
exit(1);
}
fread(&n,4,1,fp);
fread(&n,4,1,fp);
fread(&d,2,1,fp);
d=(d-33)/32; //读取字段的总个数
fread(&x,1,1,fp);
fread(&x,1,1,fp);
for(i=0;i<5;i++)
fread(&n,4,1,fp); //跳过前32个字节
loop:for(i=0;i<11;i++) //读取字段名
{
fread(&ch[i],1,1,fp);
if(ch[i]==48)
{
ch[i]=0; //遇见0,改存为空字符
for(j=i+1;j<11;j++)
fread(&x,i,i,fp);
i=j;
}
}
fread(&x,1,1,fp);
if(strcmp(ch,"math")==0)
{
fread(&a,4,1,fp);
fread(&b,1,1,fp);
fread(&c,1,1,fp);
}
else
{
for(i=0;i<5;i++)
fread(&n,4,1,fp);
while(e<d)
{
e++;
goto loop;
}
}
b=(int)b-48;
c=(int)c-48;
printf("%d\n%d\n%ld\n",b,c,a);
return 0;
}
文件aaa.dic、bbb.dic都是数据库文件(都在当前目录中)。数据库文件的文件头是一种固定的结构,如下表所示
文件头结构的内容是二进制方式存储的。
从键盘输入一个数字,打开相应的数据库文件(1--aaa.dic,2--bbb.dic),已知数据库中肯定有math这个字段(字段名:math),编程求出以下信息:
1、字段长度(或字段宽度,即该字段的信息占几个字节);
2、字段的值有几位小数;
3、该字段的值在一条记录中所处的起始位置
#include <stdlib.h>
#include <string.h>
int main()
{
FILE *fp;
long n,a,i,j;
char b,c,x,ch[11];
short d,e=1;
scanf("%d",&i);
if(i==1)
if((fp=fopen("c:\\log\\aaa.dic","rb"))==NULL)
{
printf("Can`t open this file.\n");
exit(1);
}
else
if((fp=fopen("c:\\log\\bbb.dic","rb"))==NULL)
{
printf("Can`t open this file.\n");
exit(1);
}
fread(&n,4,1,fp);
fread(&n,4,1,fp);
fread(&d,2,1,fp);
d=(d-33)/32; //读取字段的总个数
fread(&x,1,1,fp);
fread(&x,1,1,fp);
for(i=0;i<5;i++)
fread(&n,4,1,fp); //跳过前32个字节
loop:for(i=0;i<11;i++) //读取字段名
{
fread(&ch[i],1,1,fp);
if(ch[i]==48)
{
ch[i]=0; //遇见0,改存为空字符
for(j=i+1;j<11;j++)
fread(&x,i,i,fp);
i=j;
}
}
fread(&x,1,1,fp);
if(strcmp(ch,"math")==0)
{
fread(&a,4,1,fp);
fread(&b,1,1,fp);
fread(&c,1,1,fp);
}
else
{
for(i=0;i<5;i++)
fread(&n,4,1,fp);
while(e<d)
{
e++;
goto loop;
}
}
b=(int)b-48;
c=(int)c-48;
printf("%d\n%d\n%ld\n",b,c,a);
return 0;
}
文件aaa.dic、bbb.dic都是数据库文件(都在当前目录中)。数据库文件的文件头是一种固定的结构,如下表所示

文件头结构的内容是二进制方式存储的。
从键盘输入一个数字,打开相应的数据库文件(1--aaa.dic,2--bbb.dic),已知数据库中肯定有math这个字段(字段名:math),编程求出以下信息:
1、字段长度(或字段宽度,即该字段的信息占几个字节);
2、字段的值有几位小数;
3、该字段的值在一条记录中所处的起始位置
