[問題] fopen同一檔案,同一位置讀出再寫入.已解決

看板C_and_CPP作者 (紫色天平Boy)時間15年前 (2010/06/25 16:35), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 我想在同一檔案,讀出一串字串,然後在該字串 後面附加新的資料,寫回同一行。 例: File:123.TXT 內容: ABC,EFT CDEF,WEQ 希望得到的正確結果: 新資料:123.567 9812.1212 附加後的123.TXT 內容: ABC,EFT,123.567 CDEF,WEQ,9812.1212 程式跑出來的錯誤結果: 無法附加!!! 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) 純C (Dev-C++) 有問題的code: (請善用置底文標色功能) #include <stdio.h> #include <string.h> main() { FILE *fp,*fp2,*fp3; char file1[512]="",file2[512]="",file3[512]=""; char str1[2048]="",str2[2048]="",str3[2048]=""; char *str21,*str22; double New_Value[2]={123.567,9812.1212}; sprintf(file2,"%s","D:/123.TXT"); fp2=fopen(file2,"r+"); fscanf(fp2,"%s", &str1); sprintf(file3,"%f",New_Value[1]); str22=&file3; fputs(str22,fp2); fclose(fp2); system("pause"); } 補充說明: 我對C的觀念有點糟~麻煩各位幫幫忙~感謝~~~ ****** 這不是作業 ********* +++++++++++++++++++++++ 感謝 gemhung 的幫忙 +++++++++++++++++++ 修改後的CODE #include <stdio.h> #include <string.h> main() { FILE *fp,*fp2,*fp3; char file1[512]="",file2[512]="",file3[512]=""; char str1[2048]="",str2[2048]="",str3[2048]=""; char *str21,*str22; double New_Value[2]={123.567,9812.1212}; sprintf(file2,"%s","test.txt"); fp2=fopen(file2,"r+"); fscanf(fp2,"%s", str1); sprintf(file3,"%f",New_Value[1]); str22=file3; fputs(str22,fp2); fclose(fp2); system("pause"); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.218.110.180 ※ 編輯: m9556 來自: 61.218.110.180 (06/25 17:55)

06/25 18:13, , 1F
疑?? fputs 可以這樣把 str insert在file中間喔....@_@"
06/25 18:13, 1F

06/25 18:14, , 2F
還以為會直接overwrite後面的資料說, 晚點試試好了@_@"
06/25 18:14, 2F

06/25 19:05, , 3F
原PO真的試成功了嗎....? 還是原PO的檔案只有一行?
06/25 19:05, 3F
文章代碼(AID): #1C96et1w (C_and_CPP)