我将能够按字节读取我所有的结构字节(字节块很大“ sizeof(Today)”,所以它大了8个字节)。我尝试的次数越来越多,但是我不能!请给我帮助!
Bin档:“ temp.bin”
我的结构:
typedef struct
{
int year;
int month;
} Today;
这是代码的一部分,每个周期应读取8个字节:
Today *d;
d = malloc(sizeof(Today));
fp = fopen("temp.bin", "rb");
while(!feof(fp))
{
fread(d, sizeof(Today), 1, fp);
printf("Year = %i\n", d->year);
printf("Month = %i\n", d->month);
}
fclose(fp);
while条件和fread()函数很可能是错误的,但是我尝试了所有可能的组合,但输出却永远不是正确的组合!谢谢你们
您可能想先为所有块分配空间,例如
fp = fopen( "temp.bin", "rb" );
if ( fp != NULL )
{
fseek( fp, 0L, SEEK_END );
size_t size = ftell(fp);
rewind(fp);
Today *d;
d = malloc(size);
fread( d, sizeof(Today), size/sizeof(Today), fp );
fclose(fp);
}
然后你将结构体放在数组中
例如 printf( "month: %d", d[5].month);
然后对数组中的每个元素执行所需的操作,然后再将其写回。取决于文件的大小
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句