我有一个包含零件和零件号列表的文件。我需要做的是在由文件指针和整数给出的位置显示部件的名称。像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);
它打印列表中的第一部分,它应该打印第4部分。
该部分是一个包含3个字段的结构。它们的形式如下:
1 item1 2
4 item2 80
其中第一个数字是项目编号,第二个是库存数字, 所以它们的长度不一样。然而,它们被转换为二进制文件,即ofp。
答案 0 :(得分: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()。