问题 B: 实验12_6_初识二进制文件
#include <stdio.h>
int main()
{
char a, aa[5];
short b, bb[5];
int c, cc[5];
long d, dd[5];
long long e, ee[5];
float g, gg[5];
double h, hh[5];
int i;
int len = sizeof(a) + sizeof(aa) +
sizeof(b) + sizeof(bb) +
sizeof(c) + sizeof(cc) +
sizeof(d) + sizeof(dd) +
sizeof(e) + sizeof(ee) +
sizeof(g) + sizeof(gg) +
sizeof(h) + sizeof(hh);
FILE *fPtr = fopen("dict.dic", "rb");
int order;
scanf("%d", &order);
rewind(fPtr);
fseek(fPtr, (order - 1) * len, SEEK_SET);
fread(&a, sizeof(a), 1, fPtr);
printf("%c\n", a);
fread(&b, sizeof(b), 1, fPtr);
printf("%hd\n", b);
fread(&c, sizeof(c), 1, fPtr);
printf("%d\n", c);
fread(&d, sizeof(d), 1, fPtr);
printf("%ld\n", d);
fread(&e, sizeof(e), 1, fPtr);
printf("%lld\n", e);
fread(&g, sizeof(g), 1, fPtr);
printf("%f\n", g);
fread(&h, sizeof(h), 1, fPtr);
printf("%lf\n", h);
fread(aa, sizeof(a), 5, fPtr);
printf("%s\n", aa);
fread(bb, sizeof(b), 5, fPtr);
for (i = 0; i < 5; i++) printf("%hd ", bb[i]);
printf("\n");
fread(cc, sizeof(c), 5, fPtr);
for (i = 0; i < 5; i++) printf("%d ", cc[i]);
printf("\n");
fread(dd, sizeof(d), 5, fPtr);
for (i = 0; i < 5; i++) printf("%ld ", dd[i]);
printf("\n");
fread(ee, sizeof(e), 5, fPtr);
for (i = 0; i < 5; i++) printf("%lld ", ee[i]);
printf("\n");
fread(gg, sizeof(g), 5, fPtr);
for (i = 0; i < 5; i++) printf("%f ", gg[i]);
printf("\n");
fread(hh, sizeof(h), 5, fPtr);
for (i = 0; i < 5; i++) printf("%lf ", hh[i]);
printf("\n");
fclose(fPtr);
return 0;
}