作者jacky1989 (幻想的夢境)
看板C_and_CPP
標題[問題] 開啟文字檔並修改內容
時間Sun May 15 00:34:11 2011
開發平台(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