我有以下结构:
struct Records
{
int Number;
char Name[20];
float Salary;
};
Run Code Online (Sandbox Code Playgroud)
使用以下方法编写两条
fwrite(&MyRecords.Number, sizeof(&MyRecords.Number), 1, binaryfile);
fwrite(&MyRecords.Name, sizeof(&MyRecords.Name), 1, binaryfile);
fwrite(&MyRecords.Salary, sizeof(&MyRecords.Salary), 1, binaryfile);
Run Code Online (Sandbox Code Playgroud)
写完后,我无法从中读取.
FILE * read;
read = fopen("binaryfile.dat","rb");
for(int x =0;x<2;x++)
{
fread(&records.Number, sizeof(records.Number), 1, read);
fread(&records.Name, sizeof(records.Name), 1, read);
fread(&records.Salary, sizeof(records.Salary), 1, read);
printf("%d %s %f\n",records.Number,records.Name,records.Salary);
}
Run Code Online (Sandbox Code Playgroud)
第一行打印两次,浮动出现一些奇怪的数字.我在过去的2个小时内检查了两倍和三倍但我无法找出我做错了什么:(
暗示:
sizeof(&foo)
Run Code Online (Sandbox Code Playgroud)
不一样:
sizeof(foo)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
178 次 |
| 最近记录: |