user-0 提问: 请大佬解答关于文件的写入问题

回复:
user: user-1
content: 首先不要这么贴代码，搞得我还要重新给你排版，编辑框这里有个专门插入代码的功能。 我这里运行没有问题，重开后能够输出上一次录入的信息，你换DEV吧，我用DEV试的

user: user-0
content: 引用 1 楼 六道佩恩的回复:贴代码，另希望及时结贴 已贴，见三楼，请大佬赐教

user: user-0
content: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> void save(); void luru(); void search(); void search_by_time(); void search_by_name(); void print(); void shanchu(); void setstate(); /*定义线性表的顺序存储类型*/ typedef struct { 	char number[10];/*班车车号*/ 	char model[20]; /*班车型号*/     int  seating;   /*座位数*/     char name[20];  /*司机姓名*/     char time[20];  /*发车时间*/ 	int  state;     /*班车状态*/ }mbus; /*声明校车数组及校车数量*/ typedef struct { 	mbus bus[1000]; 	int count; }mstop; mstop stop;/*定义类型为struct mstop的结构变量stop*/  int main() { 	int i; 	char c; 	char s[2]; 	FILE *fp;  /*定义1文件型指针变量，指针名叫fp*//*fp指向file类型结构体的指针*/ 	if((fp=fopen("stop.txt","rb"))==NULL)/*以写的方式打开stop*/ 		stop.count=0; 	else 	{ 		fread(&stop.count,sizeof(int),1,fp);/*读入一个结构体字符块到stop.count*/ 		fread(stop.bus,sizeof(stop.bus[1]),stop.count+1,fp);/*将stop.count+1读入到stop.bus*/ 		fclose(fp);/*关闭文件*/ 	}     printf("\n\n\n\t\t\t欢迎使用班车管理系统！\n");/*班车信息管理系统欢迎界面*/ 	printf("操作说明：\n");     printf("1.数据输入完成后按Enter键确认\n");     printf("2.班车信息状态栏中，1表示未发车，0表示已发车\n"); 	printf("3.对于录入的班车信息的状态，系统默认为1\n"); 	printf("4.如果为教师专用车，请在时间后加'*'\n"); 	printf("5.班车型号均为两字\n"); 	printf("6.请严格按照要求操作：\n"); 	printf("\n\n\t\t\t请按任意键继续");     getch(); 	while(c!='0') 	{ 		printf("\n\n\n\n\n");   		printf("\t\t 班车管理系统\n");  /*班车管理系统菜单选项*/ 		for(i=0;i<45;i++) 			printf("*"); 		printf("\n");         printf("\t\t0.退出\n");         printf("\t\t1.录入班车信息\n"); 		printf("\t\t2.班车信息查询\n"); 		printf("\t\t3.班车信息输出\n"); 		printf("\t\t4.删除班车信息\n"); 		printf("\t\t5.班车状态转换\n"); 		for(i=0;i<45;i++) 			printf("*"); 		printf("\n\n"); 		printf("请输入你的选择："); /*班车信息管理系统各个选项及其后继步骤*/ 		scanf("%1s",s); 	    c=s[0];         switch(c) 		{ 	    	case'1':luru();break; 		    case'2':search();break; 	     	case'3':print();break; 			case'4':shanchu();break; 	    	case'5':setstate();break; 			default:break; 		} 	} 	printf("\n\n\n\n\n\n\n\n\n\t\t\t\t谢谢使用!\n"); 	getch(); } void save()    {    FILE *fp;/*定义1文件型指针变量，指针名叫fp*//*fp指向file类型结构体的指针*/    fp=fopen("stop.txt","wb");/*以写的方式打开stop*/    fwrite(&stop.count,sizeof(int),1,fp);/*写入一个结构体字符块到stop.count*/    fwrite(stop.bus,sizeof(stop.bus[1]),stop.count+1,fp);/*将stop.count+1写入到stop.bus*/    fclose(fp);/*关闭文件*/ } void luru()    /*班车信息录入*/ { 	int a=1; 	while(a!=0) 	{ 		stop.count++; 		printf("录入班车信息\n"); 		printf("请输入班车车号："); 		scanf("%s",stop.bus[stop.count].number);         printf("请输入班车型号：");         scanf("%s",stop.bus[stop.count].model); 		printf("请输入座位数："); 		scanf("%d",&stop.bus[stop.count].seating); 		printf("请输入司机姓名："); 		scanf("%s",stop.bus[stop.count].name);         printf("请输入发车时间：");         scanf("%s",stop.bus[stop.count].time); 		stop.bus[stop.count].state=1; 		printf("退出请按0，继续请按1："); 		scanf("%d",&a); 	} 	save(); } void search()      /*查询班车信息*/ { 	int a; 	printf("-----------------班车信息查询---------------\n"); 	printf("\t\t1.司机姓名查询\n"); 	printf("\t\t2.发车时间查询\n"); 	printf("请选择查询方式："); 	scanf("%d",&a); 	switch(a) 	{ 		case 1:search_by_name();break;         case 2:search_by_time();break; 		default:break; 	} } void search_by_time()  /*按发车时间来查询班车信息*/ { 	int i,n=1; 	char a[20]; 	printf("请输入你要查找的班车发车时间："); 	scanf("%s",a); 	getchar();     printf("班车车号    \t班车型号      座位数   司机姓名     \t发车时间  \t班车状态\n"); 	for(i=1;i<=stop.count;i++) 	  if(strcmp(a,stop.bus[i].time)==0) 	  { 		 printf("%s\t%s\t\t%d\t%s\t\t%s\t\t%d\n",stop.bus[i].number,stop.bus[i].model,stop.bus[i].seating,stop.bus[i].name,stop.bus[i].time,stop.bus[i].state);/*显示车号，型号，座位数，司机姓名，发车时间，班车状态*/ 		 n=0; 	  } 	   if(n==1) 			printf("对不起，没有相应信息"); 		getch(); } void search_by_name()   /*按司机姓名来查询班车信息*/ { 	char a[20]; 	int n=1,i; 	printf("请输入你要查找班车的司机姓名："); 	scanf("%s",a); 	getchar();     printf("班车车号    \t班车型号      座位数   司机姓名     \t发车时间  \t班车状态\n"); 	for(i=1;i<=stop.count;i++)      if(strcmp(a,stop.bus[i].name)==0) 	 {         printf("%s\t%s\t\t%d\t%s\t\t%s\t\t%d\n",stop.bus[i].number,stop.bus[i].model,stop.bus[i].seating,stop.bus[i].name,stop.bus[i].time,stop.bus[i].state);/*显示车号，型号，座位数，司机姓名，发车时间，班车状态*/ 		n=0; 	 }        if(n==1)/*如果没有数据,显示对不起.....*/ 			printf("对不起，没有相应信息"); 		  getch(); } void print() { 	int i;     printf("班车车号    \t班车型号      座位数   司机姓名     \t发车时间  \t班车状态\n");     for(i=1;i<=stop.count;i++)         printf("%s\t%s\t\t%d\t%s\t\t%s\t\t%d\n",stop.bus[i].number,stop.bus[i].model,stop.bus[i].seating,stop.bus[i].name,stop.bus[i].time,stop.bus[i].state);/*显示车号，型号，座位数，司机姓名，发车时间，班车状态*/ 	  getch(); } void shanchu()   /*班车信息的删除*/ { 	int i,j,ch,n=0; 	char a[20],b[20]; 	printf("请输入要删除的班车的车号和发车时间\n"); 	printf("\t车号："); 	scanf("%s",a); 	getchar(); 	printf("\t发车时间："); 	scanf("%s",b); 	getchar();     for(i=1;i<=stop.count;i++) 		if((strcmp(a,stop.bus[i].number)==0)&&(strcmp(b,stop.bus[i].time)==0)) 		{ 			n=i;             printf("班车车号    \t班车型号      座位数   司机姓名     \t发车时间  \t班车状态\n");             printf("%s\t%s\t\t%d\t%s\t\t%s\t\t%d\n",stop.bus[i].number,stop.bus[i].model,stop.bus[i].seating,stop.bus[i].name,stop.bus[i].time,stop.bus[i].state);/*显示车号，型号，座位数，司机姓名，发车时间，班车状态*/ 			printf("是否删除信息？     1(是),0(否)"); 			scanf("%d",&ch); 			if(ch==1) 			{ 				for(j=i+1;j<=stop.count;j++) 					stop.bus[j-1]=stop.bus[j]; 				stop.count--; 			} 			else  				break; 		} 		save(); 		if(n==0) 		{ 			printf("班车信息输入有误"); 			getch(); 		} } void setstate()     /*班车状态转换*/  { 	 int i,a,n=1; 	 char ch[20]; 	 printf("请输入班车车号："); 	 scanf("%s",ch); 	 getchar(); 	 for(i=1;i<=stop.count+1;i++) 		 if((strcmp(ch,stop.bus[i].number))==0) 		 {              printf("班车车号    \t班车型号      座位数   司机姓名     \t发车时间  \t班车状态\n");          	printf("%s\t%s\t\t%d\t%s\t\t%s\t\t%d\n",stop.bus[i].number,stop.bus[i].model,stop.bus[i].seating,stop.bus[i].name,stop.bus[i].time,stop.bus[i].state);/*显示车号，型号，座位数，司机姓名，发车时间，班车状态*/ 			n=0;break; 		 } 		 if(n==0) 		 { 			 printf("状态转换（是（1），否（0）："); 			 scanf("%d",&a); 			 if(a==1) 			 { 				 if(stop.bus[i].state==1) 					 stop.bus[i].state=0; 				 else if(stop.bus[i].state==0) 					 stop.bus[i].state=1; 			 } 			 else if(a==0) 				 return; 			 else 				 return; 		 } 		 else 			 return;  }

user: user-1
content: 盲猜你写入和读出的方式不同，比如你以字符串方式写入，却以整型读出

user: user-1
content: 贴代码，另希望及时结贴