void add(){
struct place m[100];
system("cls");
FILE *fpIn,*fpOut,*fpnum;
char c;
total=0;
fpOut=fopen("Place_date.out","ab") ;//臨時檔案
fpIn=fopen("Place_date.dat","rb");//儲存檔案
fpnum=fopen("number.txt","r");
if(fpOut!=NULL){
printf("\t\t1代表省、直轄市\n\t\t2代表地級市\n\t\t3代表縣、旗、特區\n\t\t4代表街道、鎮、鄉");
printf("\n\t\t請輸入行政劃分等級:");
fflush(stdin);
scanf("%hhd",&m[total+1].grade);
printf("\t\t請輸入地區名:");
fflush(stdin);
scanf("%s",m[total+1].adr);
printf("\t\t請輸入郵政編號:");
fflush(stdin);
scanf("%6d",&m[total+1].pcode);
system("cls");
fwrite(&m[total+1],sizeof(struct place),1,fpOut);
fflush(stdin);
total++;
}else {
printf("無法打開檔案\n");}
fclose(fpOut);
fclose(fpIn);
remove("Place_date.dat");/*洗掉原資料檔案*/
rename("Place_date.out","Place_date.dat");/*將臨時檔案更名為資料檔案*/
}
怎么改才能實作 1.寫入并保存后 下一次執行時 在上次寫入資訊的后面接著寫入
2.如何輸出已經保存的資訊
uj5u.com熱心網友回復:
fpIn=fopen("Place_date.dat","rb");//儲存檔案 r應該是只讀檔案吧,能寫入嗎,追加應該是 ab+吧uj5u.com熱心網友回復:
我是用的fpOut=fopen("Place_date.out","ab") 寫入 fopen("Place_date.dat","rb")是我想用來讀取內容 然后復制給Place_date.out 因為代碼的末尾 Place_date.out已經被洗掉了 這樣每次執行add()的時候在place_date.out后面寫入資訊了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/37763.html
標籤:新手樂園
