为什么我的文件不能保存?
这是我的程序,save那儿是错的,不能保存,求高手帮忙改啊!!!!!!!!!!!学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:
1、系统以菜单方式工作
2、学生信息录入功能(学生信息用文件保存)--输入
3、学生信息浏览功能--输出
4、学生信息查询功能--算法按学号查询按姓名查询
5、学生信息的删除与修改(可选项)
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
struct student
{
char num[10];
char name[10];
int age;
char sex[10];
char birthday[20];
char tel[12];
char addr[50];
}st[100];
int i=0;
void input()
{
char a;
do{
printf("\n请输入学号:");
scanf("%s",st[i].num);
fflush(stdin);
printf("\n请输入姓名:");
gets(st[i].name);
printf("\n") ;
printf("请输入年龄:");
scanf("%d",&st[i].age);
fflush(stdin);
printf("\n请输入姓别:");
gets(st[i].sex);
fflush(stdin);
printf("\n请输入生日:");
gets(st[i].birthday);
printf("\n请输入电话:");
scanf("%s",st[i].tel);
fflush(stdin);
printf("\n请输入地址:");
gets(st[i].addr);
printf("\n是否继续输入另外一个学生信息?(y/n)");
fflush(stdin);
a=getchar();
i++;
}while(a=='y' && i<=50);
}
void show()
{
int j;
printf("\t学号\t姓名\t年龄\t性别\t生日\t\t电话\t地址\n");
for(j=0;j<i;j++)
printf("\t%s\t%s\t%d\t%s\t%s\t%s\t%s\n",st[j].num,st[j].name,st[j].age,st[j].sex,st[j].birthday,st[j].tel,st[j].addr);
}
void search()
{
int m,item;
char name[11],num[10];
printf("------------------\n");
printf("1.按学号查询\n");
printf("2.按姓名查询\n");
printf("3.退出本菜单\n");
printf("------------------\n");
while(1)
{
printf("请选择子菜单编号:");
scanf("%d",&item);
switch(item)
{
case 1:
printf("\n请输入想查找的学生学号:");
fflush(stdin);
scanf("%s",num);
for(m=0;m<i;m++)
{
if(strcmp(num,st[m].num)==0)
{
printf("\n\t您查找的学生在第%d个位置找到了!!!\n",m+1);
break;
}
}
if(m>=20)
printf("\n\t没有找到这个学生!!!\n");
else
{
printf("\t学号\t姓名\t年龄\t性别\t生日\t\t电话\t地址\n");
printf("\t%s\t%s\t%d\t%s\t%s\t%s\t%s\n",st[m].num,st[m].name,st[m].age,st[m].sex,st[m].birthday,st[m].tel,st[m].addr);
}
break;
case 2:
printf("\n请输入想查找的学生姓名:");
fflush(stdin);
scanf("%s",name);
for(m=0;m<i;m++)
{
if(strcmp(name,st[m].name)==0)
{
printf("\n\t您查找的学生在第%d个位置找到了!!!\n",m+1);
break;
}
}
if(m>=20)
printf("\n\t没有找到这个学生!!!\n");
else
{
printf("\t学号\t姓名\t年龄\t性别\t生日\t\t电话\t地址\n");
printf("\t%s\t%s\t%d\t%s\t%s\t%s\t%s\n",st[m].num,st[m].name,st[m].age,st[m].sex,st[m].birthday,st[m].tel,st[m].addr);
}
break;
case 3:return;
default:printf("请在1-3之间选择\n");
}
}
}
void delet()
{
char name[20],c;
int a,b;
do
{
printf("\n请输入要删除的学生姓名:\n");
fflush(stdin);
gets(name);
for(a=0;a<i;a++)
{
if(strcmp(name,st[a].name)==0)
break;
}
for(b=a;b<i;b++)
st[b]=st[b+1];
if(a>i)
printf("\t没有找到这个学生!!!\n");
else
{
i--;
show();
}
printf("\n是否继续删除另一个学生信息?(y/n) ");
fflush(stdin);
c=getchar();
}while(c=='y');
}
void charu()
{
input();
}
void save()
{
FILE *fp;
char *caIpt;
long double cRlt;
fp=fopen("data.txt","a");//在文件末尾追加
fputs(caIpt,fp);
fseek(fp,0,2);//扫描到最后。
fputc('=',fp);
fprintf(fp,"%lg",cRlt);
fputc('\n',fp);
fclose(fp);
}
void Load( FILE *fp)
{
char ch;
fp=fopen("data.txt","r");
ch=fgetc(fp);//从指定的文件读入一个字符,fp自动后移。直到feof。
while(!feof(fp))
{
putchar(ch);ch=fgetc(fp);
}
fclose(fp);
}
void menu()
{
system("cls");
printf("\n");
printf(" *******************Main Menu*******************\n");
printf(" ********1.input record 2.show record********\n");
printf(" ********3.search record 4.delet record********\n");
printf(" ********5.charu record 6.save record********\n");
printf(" *****************7.quit record*****************\n");
printf(" ****************************************************\n");
}
void main()
{
int change;
FILE *fs;
fs = fopen("a.txt","w");
fprintf(fs, "hello world!\n");
fclose(fs);
return 0;
menu();
do
{
system("cls");
menu();
printf("\n Please Enter your choice(1~7):"); /*显示提示信息*/
scanf("%d",&change);
fflush(stdin);
switch(change)
{
case 1: input(); break;
case 2: show(); break;
case 3: search(); break;
case 4: delet(); break;
case 5: charu(); break;
case 6: save();break;
case 7: exit(0);break;
default:printf("Input error,please input again!\n");
}
getch();
}while(change!=6);
}