读文件总是错误,请问各们大侠。
# include "stdio.h"
# define max 100
# define mem 127
struct addr {
char name[30];
char sex[3];
char antenatal[9];
char phone[15];
char office[15];
char handset[15];
char address[40];
}addr_jilu[max];
FILE *fp;
main()
{
void shuru(),shuchu(),chazhao(),shanchu();
char x;
do{
printf(" 1-----输入记录.\n");
printf(" 2-----输出记录.\n");
printf(" 3------查找记录.\n");
printf(" 4-----删除记录.\n");
printf(" 5------QUIT.\n");
printf("输入选择番号:");
scanf("%c%*c",&x);
switch(x){
case'1':shuru();
break;
case'2':shuchu();
break;
case'3':chazhao();
break;
case'4':shanchu();
break;
case'5':exit();
break;
}
}while(x!='5');
}
void shuru()
{
char x;
int i=0;
if((fp=fopen("penyou.txt","a"))==NULL){
printf("欢迎建立自己的电话录./n");
}
do {
printf("姓名:");
scanf("%s",addr_jilu[i].name);
printf("性别:");
scanf("%s",addr_jilu[i].sex);
printf("出生年月格式如:19830616:");
scanf("%s",addr_jilu[i].antenatal);
printf("电话:");
scanf("%s",addr_jilu[i].phone);
printf("办公室电话:");
scanf("%s",addr_jilu[i].office);
printf("手机:");
scanf("%s",addr_jilu[i].handset);
printf("地址:");
scanf("%s",addr_jilu[i].address);
fseek(fp,mem,2);
fprintf(fp,"%s%s%s%s%s%s%s",addr_jilu[i].name,addr_jilu[i].sex,addr_jilu[i].antenatal,addr_jilu[i].phone,addr_jilu[i].office,addr_jilu[i].handset,addr_jilu[i].address);
printf("是否继续输入记录? y/n:");
x=getchar();
x=getchar();
}while(x=='y' || x=='Y');
fclose(fp);
}
void shuchu()
{
int i;
if((fp=fopen("penyou.txt","r"))==NULL){
printf("文件出错或没有找到.");
exit(1);
}
for(i=0;!feof(fp);++i){
fseek(fp,mem*i,0);
fscanf(fp,"%s%s%s%s%s%s%s",addr_jilu[i].name,addr_jilu[i].sex,addr_jilu[i].antenatal,addr_jilu[i].phone,addr_jilu[i].office,addr_jilu[i].handset,addr_jilu[i].address);
printf("%s %s %s %s %s %s %s",addr_jilu[i].name,addr_jilu[i].sex,addr_jilu[i].antenatal,addr_jilu[i].phone,addr_jilu[i].office,addr_jilu[i].handset,addr_jilu[i].address);
}
fclose(fp);
}
void chazhao()
{
char name1[30];
int i;
printf("输入要找的人的姓名:");
scanf("%s",name1);
if((fp=fopen("penyou.txt","r"))==NULL){
printf("文件出错或没有找到.");
exit(1);
}
for(i=0;!feof(fp);++i){
fseek(fp,mem*i,0);
fscanf(fp,"%s%s%s%s%s%s%s",addr_jilu[i].name,addr_jilu[i].sex,addr_jilu[i].antenatal,addr_jilu[i].phone,addr_jilu[i].office,addr_jilu[i].handset,addr_jilu[i].address);
if(! strcmp(name1,addr_jilu[i].name)){
printf("%s%s%s%s%s%s%s\n",addr_jilu[i].name,addr_jilu[i].sex,addr_jilu[i].antenatal,addr_jilu[i].phone,addr_jilu[i].office,addr_jilu[i].handset,addr_jilu[i].address);
break;
}
fclose(fp);
}}
void shanchu()
{
char name1[30];
int i;
printf("输入要删除人的姓名:");
scanf("%s",name1);
if((fp=fopen("penyou.txt","rt"))==NULL){
printf("文件出错或没有找到.");
exit(1);
}
for(i=0;!feof(fp);++i)
{
fseek(fp,mem*i,0);
fscanf(fp,"%s%s%s%s%s%s%s",addr_jilu[i].name,addr_jilu[i].sex,addr_jilu[i].antenatal,addr_jilu[i].phone,addr_jilu[i].office,addr_jilu[i].handset,addr_jilu[i].address);
}
for(i=0;addr_jilu[i].name==NULL;i++)
{
if(! strcmp(name1,addr_jilu[i].name))
{
for(;addr_jilu[i].office==addr_jilu[i+1].office;i++)
{
strcpy(addr_jilu[i].name,addr_jilu[i+1].name);
strcpy(addr_jilu[i].sex,addr_jilu[i+1].sex);
strcpy(addr_jilu[i].antenatal,addr_jilu[i+1].antenatal);
strcpy(addr_jilu[i].phone,addr_jilu[i+1].phone);
strcpy(addr_jilu[i].office,addr_jilu[i+1].office);
strcpy(addr_jilu[i].handset,addr_jilu[i+1].handset);
strcpy(addr_jilu[i].address,addr_jilu[i+1].address);
}
}
}
for(i=0;!feof(fp);i++)
{
fseek(fp,mem*i,0);
fprintf(fp,"%s%s%s%s%s%s%s",addr_jilu[i].name,addr_jilu[i].sex,addr_jilu[i].antenatal,addr_jilu[i].phone,addr_jilu[i].office,addr_jilu[i].handset,addr_jilu[i].address);
}
rewind(fp);
}