看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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
deh3215:while做啥用的? num的值? 05/15 00:49
jacky1989:讀內容用的 05/15 00:53
TsinTa:有個不太好的解決方法...在進while迴圈之後,關檔重開 05/15 00:57
TsinTa:r+的寫檔會讓你從fcanf完後的地方開始寫檔...不是從頭寫 05/15 00:59
jacky1989:對阿!!我就是要從讀完地方開始.... 05/15 01:00
TsinTa:fscanf的pt[0]前面不用加&,後面的也一樣... 05/15 01:06
TsinTa:我用你的程式碼來跑,沒有問題耶@@" 05/15 01:13
jacky1989:可是我怎麼跑檔案內容就是不修改= = 05/15 01:16
TsinTa:fscanf裡面你確定是讀到7個值嗎...再仔細算算吧... 05/15 09:29