|
发表于 2013-3-16 11:47:57
|
显示全部楼层
这个出问题的地方是sizeof p这句,你定义的p是指针,获取的sizeof大小是4,所以有问题。
解决办法:
将所有sizeof p 改为 sizeof node。
修改代码:
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- int main(int argc, char **argv)
- {
- FILE *fp;
- if((fp = fopen("c:\\test.dat","w+")) == NULL)
- {
- printf("error\n");
- exit(-1);
- }
- struct node
- {
- char name[20];
- char password[10];
- int money;
- int power;
- };
- typedef struct node *user;
- user p = (user)malloc(sizeof(node));
- user q = (user)malloc(sizeof(node));
- //int d = sizeof node;
- strcpy(p->name,"aaa");
- strcpy(p->password,"bbb");
- p->money = 1;
- p->power = 2;
- fwrite(p,sizeof(node),1,fp);
- rewind(fp);
- fread(q,sizeof(node),1,fp);
- printf("%s\n",q->name);
- printf("%s\n",q->password);
- printf("%d\n",q->money);
- printf("%d\n",q->power);
- free(p);
- free(q);
- fclose(fp);
- flushall();
- getchar();
- return 0;
- }
复制代码 运行结果:
|
|