[問題] 開啟文字檔並修改內容

看板C_and_CPP作者 (幻想的夢境)時間13年前 (2011/05/15 00:34), 編輯推噓0(009)
留言9則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) DEV-C 問題(Question): 我打算開啟一個已經存在的檔案,然後可以修改內容 錯誤結果(Wrong Output): 未修改 程式碼(Code):(請善用置底文網頁, 記得排版) void del(FILE *fo,char *fn){ int dn,i,j,num; char pt[7][80]; for(i=0;i<7;i++) for(j=0;j<80;j++) pt[i][j]=0; print(fo,fn); fo=fopen(fn,"r+"); printf("請輸入刪除資料號碼:"); scanf("%d",&dn); while(fscanf(fo,"%d%s%s%s%s%s%s",&num,&pt[0],&pt[1],&pt[2],&pt[3],&pt[4],&pt[5],&pt[6])==7){ if(num==dn){ printf("%d %d\n",num,ftell(fo)); fprintf(fo,"%d\n",ftell(fo)); break; } } fclose(fo); } 補充說明(Supplement): 這是我其中一個副程式 我想要覆寫內容 可是我發現根本沒有覆寫...... 內容還是跟原來的一樣 怎麼會這樣? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.192.76.53

05/15 00:49, , 1F
while做啥用的? num的值?
05/15 00:49, 1F

05/15 00:53, , 2F
讀內容用的
05/15 00:53, 2F

05/15 00:57, , 3F
有個不太好的解決方法...在進while迴圈之後,關檔重開
05/15 00:57, 3F

05/15 00:59, , 4F
r+的寫檔會讓你從fcanf完後的地方開始寫檔...不是從頭寫
05/15 00:59, 4F

05/15 01:00, , 5F
對阿!!我就是要從讀完地方開始....
05/15 01:00, 5F

05/15 01:06, , 6F
fscanf的pt[0]前面不用加&,後面的也一樣...
05/15 01:06, 6F

05/15 01:13, , 7F
我用你的程式碼來跑,沒有問題耶@@"
05/15 01:13, 7F

05/15 01:16, , 8F
可是我怎麼跑檔案內容就是不修改= =
05/15 01:16, 8F

05/15 09:29, , 9F
fscanf裡面你確定是讀到7個值嗎...再仔細算算吧...
05/15 09:29, 9F
文章代碼(AID): #1Dpgy78t (C_and_CPP)