70,021
社区成员




/*显示地名信息*/
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include"place_data.h"
/*
* 函数名称:sort
* 函数功能:显示地名相关信息
* 形式参数:无
* 返 回 值:无
*/
void sort() {
system("cls");
FILE *fpIn,*fpcnt;
int i;
fpIn=fopen("Place_date.dat","rb");
fpcnt=fopen("number.dat","rb");
struct place m[101];
fread(m,sizeof(struct place),100,fpIn);
fread(&total,sizeof(int),1,fpcnt);
fseek(fpIn,0,SEEK_SET);
printf("\t\t1代表省、直辖市\n\t\t2代表地级市\n\t\t3代表县、旗、特区\n\t\t4代表街道、镇、乡\n\t\t----------------\n");
for(i=0;i<total;i++){
printf("\n\t\t行政划分等级为:%d\n",m[i].grade);
printf("\t\t地区名为:%s\n",m[i].adr);
printf("\t\t邮编号为:%d\n",m[i].pcode);
printf("\n\t\t----------------\n");
}
if(getch()){
system("cls");
}
fclose(fpIn);
fclose(fpcnt);
}
到底是add 有问题还是 sort 有问题 /*增加地名信息*/
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include"place_data.h"
#include <string.h>
/*
* 函数名称:del
* 函数功能:增加地名相关信息
* 形式参数:无
* 返 回 值:无
*/
void add(){
struct place m[100];
system("cls");
FILE *fpIn,*fpOut,*fpcnt;
fpcnt=fopen("number.dat","wb+");//打开记录信息数文件
fpOut=fopen("Place_date.out","ab") ;//打开临时文件
fpIn=fopen("Place_date.dat","rb");//打开储存文件
fread(&total,sizeof(int),1,fpcnt);
fread(m,sizeof(struct place),100,fpIn);
if(fpOut!=NULL){
printf("\t\t1代表省、直辖市\n\t\t2代表地级市\n\t\t3代表县、旗、特区\n\t\t4代表街道、镇、乡");
printf("\n\t\t请输入行政划分等级:");
fflush(stdin);
scanf("%1d",&m[total].grade);
printf("\t\t请输入地区名:");
fflush(stdin);
scanf("%s",m[total].adr);
printf("\t\t请输入邮政编号:");
fflush(stdin);
scanf("%6d",&m[total].pcode);
system("cls");
fwrite(&m[total],sizeof(struct place),1,fpOut);
fflush(stdin);
total++;
fwrite(&total,sizeof(int),1,fpcnt);
}else {
printf("无法打开文件\n");}
fclose(fpOut);
fclose(fpIn);
fclose(fpcnt);
remove("Place_date.dat");/*删除原数据文件*/
rename("Place_date.out","Place_date.dat");/*将临时文件更名为数据文件*/
}