0

我有一个包含零件和零件编号列表的文件。我需要做的是在文件指针和整数给出的位置显示零件的名称。类似于sizeof(part) * n然后在该位置显示零件的信息。

我正在尝试 fseek 和 fread,但它似乎无法正常工作。

FILE * ofp;
ofp = fopen("file.bak", "r");

char p[sizeof(part)];

fseek(ofp,sizeof(part) * 4,SEEK_SET);
fread(p, sizeof(part), 1, ofp);
printf("%s", p);

它打印列表中的第一部分,而它应该打印第四部分。

该部分是一个包含 3 个字段的结构。它们的形式为:

1 item1 2
4 item2 80

其中第一个数字是商品编号,第二个是库存编号,因此它们的长度不同。然而,它们被转换为二进制文件,即 ofp。

4

1 回答 1

0

这是我想让你尝试的方法:

FILE * ofp;
ofp = fopen("file.bak", "r");
part seek_part;

memset( &seek_part, 0, sizeof(part) );
fseek(ofp,sizeof(part) * 4,SEEK_SET);
fread(&seek_part, sizeof(part), 1, ofp);
printf("%s", seek_part.name);

这仍然无法编译,但你应该明白了。我们需要查看 typedef 部分才能真正显示正确的 printf()。

于 2013-04-24T23:54:21.493 回答