求助 向文件输入信息后问什么文件还是为空啊
#include<stdio.h>#include<string.h>
#include<stdlib.h>
struct tongxunguanli
{
char clas[10];
char name[20];
char num[20];
char address[100];
char tele[12];
char mail[30];
char whchat[100];
}tongxun[100];
int count=0;
double xuehao=0;
void build(int);
void show(int);
void search(int);
void update(int);
void insert(int);
void delet(int);
void paixu(int);
void cunchu(int);
int main()
{
int i;
build(count);
do
{
printf("\n");
printf("1 显示(show)\n");
printf("2 查询(search)\n");
printf("3 修改(update)\n");
printf("4 添加(insert)\n");
printf("5 删除(delete)\n");
printf("6 排序(paixu)\n");
printf("7 退出(exit)\n");
scanf("%d",&i);
switch(i)
{
case 1:show(count);break;
case 2:search(count);break;
case 3:update(count);break;
case 4:insert(count);break;
case 5:delet(count);break;
case 6:paixu(count);break;
case 7:printf("您即将退出系统,谢谢使用");break;
default:printf("错误选择!请重选\n");break;
}
}while(i!=7);
return 0;
}
void build(int)
{int i=0,t=0;
while(1)
{
count++;
printf("请按顺序依次输入学生班级、姓名、学号、家庭地址、电话号码、邮件名、微信名\n");
scanf("%s %s %s %s %s %s %s",tongxun[i].clas,tongxun[i].name,tongxun[i].num,tongxun[i].address,tongxun[i].tele,tongxun[i].mail,tongxun[i].whchat);
i++;
printf("\n");
printf("是否继续输入 用t是否等于i来判断 t==i则继续重复执行该程序\n");
scanf("%d",&t);
if(t!=i)
break;
}
cunchu(count);
}
void show(int count)
{
int i=0;
printf("\n");
printf("展示学生姓名、学号和电话号码\n");count++;
for(i=0;i<count;i++)
{printf("%s\n",tongxun[i].name);
printf("%s\n",tongxun[i].num);
printf("%s\n",tongxun[i].tele);
}
}
void search(int count)
{
int i,flag=1,t=0;
char xuehao[20];
char xingming[20]={"\0"};
printf("1 姓名2学号\n");
printf("输入1或2\n");
scanf("%d",&t);
if(t==1)
{printf("输入姓名\n");
scanf("%s",xingming);
for(i=0;i<count&&flag;i++)
if(strcmp(tongxun[i].name,xingming)==0)
{
printf("%s %s %s %s %s %s %s",tongxun[i].clas,tongxun[i].name,tongxun[i].num,tongxun[i].address,tongxun[i].tele,tongxun[i].mail,tongxun[i].whchat);flag=0;
}
else if(t==2)
{
printf("请输入学号\n");
scanf("%s",&xuehao);
for(i=0;i<count&&flag;i++)
if(strcmp(tongxun[i].num,xuehao)==0)
{printf("%s %s %s %s %s %s %s",tongxun[i].clas,tongxun[i].name,tongxun[i].num,tongxun[i].address,tongxun[i].tele,tongxun[i].mail,tongxun[i].whchat);
flag=0;
}
else
printf("没有找到\n");
}
}
}
void update(int count)
{
int i,flag=1;
char xuehao[20];
printf("请输入要修改数据的学号\n");
scanf("%s",xuehao);
for(i=0;i<count&&flag;i++)
if(strcmp(tongxun[i].num,xuehao)==0)
{scanf("%s %s %s %s %s %s %s",tongxun[i].clas,tongxun[i].name,tongxun[i].num,tongxun[i].address,tongxun[i].tele,tongxun[i].mail,tongxun[i].whchat);
flag=0;
}
if(flag!=0) printf("没有查到可修改的数据");
}
void insert(int count)
{
int i;
char xuehao[20];
if(count==100)
{printf("空间已满");
return ;}
printf("请输入学号\n");
scanf("%s",xuehao);
for(i=0;i<count;i++)
if(strcmp(tongxun[i].num,xuehao)==0)
{printf("已经有相同的编号");return ;}printf("count %d",count);count++;printf("count %d",count);
strcpy(tongxun[i].num,xuehao);
printf("请按顺序依次输入学生班级、姓名、学号、家庭地址、电话号码、邮件名、微信名\n");
scanf("%s %s %s %s %s %s %s",tongxun[i].clas,tongxun[i].name,tongxun[i].num,tongxun[i].address,tongxun[i].tele,tongxun[i].mail,tongxun[i].whchat);}
void delet(int count)
{
int i,j,flag=1,t;
char xuehao[20];
char xingming[20]={'\0'};
printf("1 姓名2学号");
printf("输入1或2");
scanf("%d",&t);
if(t==1)
{printf("输入姓名\n");
scanf("%s",xingming);
for(i=0;i<count&&flag;i++)
if(strcmp(tongxun[i].name,xingming)==0)
{for(j=i;j<count-1;j++)
tongxun[j]=tongxun[j+1];
flag=0;
count--;
}tongxun[j]=tongxun[j+1];}
else if(t==2)
{ printf("请输入学号");
scanf("%s",&xuehao);
for(i=0;i<count&&flag;i++)
if(strcmp(tongxun[i].num,xuehao)==0)
{for(j=i;j<count-1;j++)
tongxun[j]=tongxun[j+1];
flag=0;
count--;
}
else printf("没有查询到可以删除的数据");
}}
void paixu(int count)
{
int i,j;
struct tongxunguanli p;
for(j=0;j<count-1;j++)
for(i=0;i<count-1-j;i++)
if(strcmp(tongxun[i].num,tongxun[i+1].num)>0)
{p=tongxun[i+1];
tongxun[i+1]=tongxun[i];
tongxun[i]=p;
}
}
void cunchu(int count)
{
FILE *fp,*file;
int i;
if((fp=fopen("st.dat","wb"))==NULL)
{
printf("can not open file\n");
return;
}
for(i=0;i<count;i++)
if(fwrite(&tongxun[i],sizeof(struct tongxunguanli),1,fp)!=1)
{
printf("file write error\n");
}
fclose(fp);
if((file=fopen("st.dat","wb"))=NULL)
{printf("can not open file\n");
return;}
fread(&tongxun[i],sizeof(struct tongxunguanli),1,fp);
for(i=0;i<count;i++)
printf("%s %s %s %s %s %s %s",tongxun[i].clas,tongxun[i].name,tongxun[i].num,tongxun[i].address,tongxun[i].tele,tongxun[i].mail,tongxun[i].whchat);
fclose(file); }
这是题目 其中代码有几个问题没修改 主要问的是最后那个文件为什么将信息后文件还是为空
(三)通讯录管理系统的设计与实现
1. 项目描述
设计与实现一同学通讯录
2. 系统设计说明
(1)创建通讯录:输入学生的班级、姓名、学号、性别、家庭住址、电话号码、邮箱名、微信名等,并将它们存放在对应的数组中;每输入一组数据,记录数增1。
(2)显示通讯录:将记录学生姓名、学号和电话号码的数组中的数据一一输出到屏幕上,可以根据实际记录数确定循环次数。
(3)查询通讯录:分别按姓名和学号进行查询,查询时将输入的信息通过循环与相应数组成员一一进行比较。
(4)修改通讯录:输入需要修改记录的学号,通过循环查找到该记录后,再输入新数据替代原有数据。
(5)添加通讯录:判断输入的学号是否重复,若不重复再将输入的信息添加到对应的数组中,每输入一组数据,记录数增1。
(6)删除通讯录:分别按学号和姓名进行删除。
(7)排序通讯录:分别按学号和姓名进行排序。排序方式可以是升序或降序。
(8)文件存储:把通讯录信息存入到文件中。
(9)文件导入:从文件中导入数据到系统中,然后进行管理。
(10)退出。
[此贴子已经被作者于2021-1-5 18:33编辑过]