当前位置:文档之家› 文件保存 链表应用

文件保存 链表应用

#include
void sort(int a[],int n);
int main()
{
int i;
int a[6];
printf("请输入6 个数:\n");

for(i=1;i<=6;i++)
scanf("%d",&a[i]);

sort(a,6);
printf("直接选择排序后的结果如下:\n");
for(i=1;i<=6;i++)
printf("%d\n",a[i]);

}
void sort(int a[],int n)
{
int i,j,k;

for(i=1;i
{
for(k=i,j=i+1;j<=n;j++)

if(a[k]>a[j])
k=j;
if(i!=k)
{
a[0]=a[k];
a[k]=a[i];
a[i]=a[0];
}

}

}
#include
#include
#include
#include
#define ESC 27
#define Enter 13
#define BackSpace 8
typedef struct Link2
{ char username[25]; //用户名
char password[16]; //登录密码
// Diary *diarys_list; //该用户拥有的日记链表
struct Link2 *next;
} User;
//void readfromfile(User*a);
User* initUser(User*a);
User* AddNewUser(User*a);
void display(User*a);
void writetofile(User*a);
User* readfromfile(User*a);
User* initUser(User*a)
{
a=(User*)malloc(sizeof(User));
a->next=NULL;
return a;
}
User* AddNewUser(User*a)
{
char str1[20],str2[20];
int i,j,n;
j=0;

User *p,*r;

r=a;
printf("请输入所要添加用户的个数:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
p=(User*)malloc(sizeof(User));
printf("\n请输入用户名:\n");
scanf("%s",&p->username);

printf("请输入用户密码:\n");
//scanf("%s",&p->password);

while(str1[j]=getch()!=Enter)
{
str2[j]=str1[j];
str1[j]='*';
printf("%c",str1[j]);
j++;
}
str2[j]='\0';
strcpy(p->password,str2);
p->next=NULL;
r->next=p;
r=r->next;

}

return a;
}
void display(User*a)
{ int i;
i=1;
User*p;
p=a->next;
printf("\n");
printf("有如下用户:\n");
while(p!=NULL)
{
printf("第%d个用户:",i);
printf("%s\n",p->username);
p=p->next;
i++;
}

}
void writetofile(User*a)
{
FILE*fp;
User*p;
p=a;
char Filename[20];
printf("请输入文件名或路径:");
scanf("%s",Filename);
fp=fopen("Filename","w");
if(fp==NULL)
{
printf("文件创建失败!");
exit(0);
}
else
{
while(p!=NULL)
{
fwrite(p,sizeof(User),1,fp);
p=p->next;
}
}

fclose(fp);
}
User* readfromfile(User*a)
{
FILE *fp;
a=initUser(a);
User*p,*r;
char Filename[20];
r=a;
printf("请输入要打开的文件名:");
scanf("%s",Filename);
fp=fopen("Filename","r");
if(fp==NULL)
{
printf("文件打开失败!");
exit(0);
}
else
{
whi

le(!feof(fp))
{

p=(User*)malloc(sizeof(User));
fread(p,sizeof(User),1,fp);
return p;
if(fread(p,sizeof(User),1,fp)!=1)
{
free(p);
break;
}
p->next=NULL;
r->next=p;
r=r->next;
}
}
fclose(fp);
return a;
}

int main()
{
int i;
User*a=NULL,*b=NULL;
a=initUser(a);
b=initUser(b);
a=AddNewUser(a);

display(a);
writetofile(a);
b=readfromfile(b);
//display(a);
display(b);
}




相关主题
文本预览
相关文档 最新文档