做通讯录系统遇到点问题,请教各位。
代码如下,#include"stdio.h"
#include"stdlib.h"
#include"string.h"
struct student
{
char num[10];
char name[20];
char sex;
char phone[12];
}stu[100];
int sum=0;
FILE *fp; //定义文本指针
void Student(); //主菜单函数的声明
void Insert(); //添加联系人函数的声明
void Update(); //修改函数的声明
void Delete(); //删除函数的声明
void Show(); //显示通讯录
void Search(); //查找函数
void Search_1(); //精确查找
void Search_2(); //模糊查找
void Save(); //定义Save函数,向文件输出学生的数据
void main()
{
Student();
}
void Student()
{
int a;
system("color f1");
printf("\n\n\n");
printf("\t\t\t 软件1214班学生通讯录管理系统\n");
printf ("\n================================================================================\n");
printf("\t\t\t\t1---添加联系人\n");
printf("\t\t\t\t2---显示通讯录\n");
printf("\t\t\t\t3---修改联系人\n");
printf("\t\t\t\t4---删除联系人\n");
printf("\t\t\t\t5---查找联系人\n");
printf("\t\t\t\t6---退出\n");
printf ("\n================================================================================\n");
scanf("%d",&a);
switch(a)
{
case 1:Insert();Student();break;
case 2:Show(); break;
/* case 3:Update();break;
case 4:Delete();break;
case 5:Search();break;
case 6: break;
default:printf("选择错误,请重新输入!");*/
}
}
void Insert()
{
int i,j;
for(i=0;i<100;i++)
{system("cls");
sum=sum+1;
printf("\n\n\t输入学号\n\t");
scanf("%s",stu[i].num);
printf("\n\n\t输入姓名\n\t");
scanf("%s",stu[i].name);
printf("\n\n\t输入性别\n\t");
scanf("%s",&stu[i].sex);
printf("\n\n\t输入号码\n\t");
scanf("%s",stu[i].phone);
printf("\n是否继续添加:1是0否");
scanf("%d",&j);
if(j==1)
printf("\n");
else
break;
}
Save();
}
void Save()
{
int i;
if((fp=fopen("1214","wb"))==NULL)
{printf("can not open file\n");
exit(0);
}
for(i=0;i<sum;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
void Show()
{
system("cls");
int i,j;
if((fp=fopen("1214","rb"))==NULL)
{printf("can not open file\n");
exit(0);
}
if(sum!=0)
for(i=0;i<sum;i++)
if(fread(&stu[i],sizeof(struct student),1,fp)!=1)
printf("file write error\n");
for(i=0;i<sum;i++)
printf("%s%s%s%s",stu[i].num,stu[i].name,stu[i].sex,stu[i].phone);
fclose(fp);
if(sum==0)
printf("\n\t\t\t\t通讯录目前没有记录\n");
printf("按任意键返回主界面");
scanf("%s",&j);
system("cls");
Student();
}
/*void Delete()
{
}
void Update()
{
}
void Search()*/
问:数据检查到录入到了1214的文件中,不过好像用程序中的Show(显示通讯录记录的函数)读不出1214文件中的内容。望各位不吝赐教,谢谢。