标签:blog io os ar for div c log r
#include <stdio.h>
#include <malloc.h>
#include <string.h>
struct address
{
int a;
int b;
char c;
struct address *next;
};
void SaveToFile(struct address *p, FILE *fp)
{
if(p != NULL)
{
do
{
fwrite(p, sizeof(struct address), 1, fp);
p = p->next;
} while(p != NULL);
}
}
int load(FILE *fp, struct address **head)
{
int n=0;
struct address *p1,*p2;
*head = (struct address *) malloc(sizeof(struct address));
memset(*head, 0, sizeof(struct address));
if( fread(*head, sizeof(struct address), 1, fp) != 1)
{
free(*head);
*head = NULL;
return(0);
}
p2 = *head;
n++;
while( !feof(fp))
{
p1 = (struct address *) malloc(sizeof(struct address));
fread(p1, sizeof(struct address), 1, fp);
p2->next = p1;
p2 = p1;
n++;
}
p2->next = NULL;
return(n);
}
void main()
{
struct address *head;
struct address *Test[10] = {0};
int i = 0;
FILE *fp = NULL;
for(i=0; i < 10; i++)
{
Test[i] = (struct address *)malloc(sizeof(struct address));
if(Test[i] != NULL)
{
memset(Test[i], 0, sizeof(struct address));
Test[i]->a = 65 + i;
Test[i]->b = 65 + i;
}
}
for(i = 0; i < 10; i++)
{
if(i < 10)
{
Test[i]->next = Test[i+1];
}
}
if((fp = fopen("addrbook.txt", "wb")) != NULL)
{
SaveToFile(Test[0], fp);
fclose(fp);
}
if((fp = fopen("addrbook.txt", "rb")) != NULL)
{
load(fp, &head);
}
}
标签:blog io os ar for div c log r
原文地址:http://www.cnblogs.com/xinglei/p/4012027.html