線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1078
推到 Plurk!
推到 Facebook!

關於fprintf的問題

尚未結案
evan123jp
一般會員


發表:3
回覆:4
積分:1
註冊:2004-11-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-28 14:06:06 IP:163.28.xxx.xxx 未訂閱
像下面這個 if((inputPtr=fopen("001.dat","r "))==NULL || (outputPtr=fopen("001.dat","r "))==NULL) { } else { fprintf(inputPtr,"input"); fprintf(outputPtr,"\n"); fprintf(outputPtr,"output"); } 當我把兩個指標都指向同一個檔案 先用inpurPtr的指標在檔案上寫出input 再用outputPtr的指標要在檔案上寫出斷行 再用outputPtr的指標要在檔案上寫出output 我希望輸出的樣子是像下面: output input 可是現在輸出都是像這樣: output 就是說用outputPtr指標所印的字和斷行把原先的覆蓋掉了 所以想請問就是有沒有指令可以向鍵盤上的insert的功能 可以直接在文字的中間插入想要輸入的字 如果可以的話可以順便示範一下怎麼用嗎 謝謝各位了喔
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-28 21:59:22 IP:61.64.xxx.xxx 未訂閱
引言: 像下面這個 if((inputPtr=fopen("001.dat","r "))==NULL || (outputPtr=fopen("001.dat","r "))==NULL) { } else { fprintf(inputPtr,"input"); fprintf(outputPtr,"\n"); fprintf(outputPtr,"output"); } 當我把兩個指標都指向同一個檔案 先用inpurPtr的指標在檔案上寫出input 再用outputPtr的指標要在檔案上寫出斷行 再用outputPtr的指標要在檔案上寫出output 我希望輸出的樣子是像下面: output input 可是現在輸出都是像這樣: output 就是說用outputPtr指標所印的字和斷行把原先的覆蓋掉了 所以想請問就是有沒有指令可以向鍵盤上的insert的功能 可以直接在文字的中間插入想要輸入的字 如果可以的話可以順便示範一下怎麼用嗎 謝謝各位了喔
if((inputPtr=fopen("001.dat","r "))==NULL || (outputPtr=fopen("001.dat","r "))==NULL) 改成 if((inputPtr=fopen("001.dat","a "))==NULL || (outputPtr=fopen("001.dat","a "))==NULL) 補充一點, 既然是要寫入同一個檔案, 實在不建議您開兩個來進行寫入. 一次處理一個也不容易出錯.
evan123jp
一般會員


發表:3
回覆:4
積分:1
註冊:2004-11-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-29 04:22:25 IP:163.28.xxx.xxx 未訂閱
開兩個指向同一個檔案 是因為我希望一個用來讀入某一部分的資料 而另外一個用來在中間插入跟另一個指標讀入有關的資料 但是兩個指標所要處理的資料並沒有再同一個位置 若用兩個指標指向同一個檔案且都是用a 來開啟 好像兩個之指標的位置會變成同一個 inputPtr = fopen("001.dat","a "); outputPtr = fopen("001.dat","a "); fprintf(inputPtr,"input"); fprintf(outputPtr,"\n"); fprintf(outputPtr,"output"); 印出來是變成 input output 而不是 output input 請問是因為檔案的游標只有一個的關係 所以造成兩個指標都在同一個位置嗎
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-29 09:06:15 IP:210.243.xxx.xxx 未訂閱
引言: 開兩個指向同一個檔案 是因為我希望一個用來讀入某一部分的資料 而另外一個用來在中間插入跟另一個指標讀入有關的資料 但是兩個指標所要處理的資料並沒有再同一個位置 若用兩個指標指向同一個檔案且都是用a 來開啟 好像兩個之指標的位置會變成同一個 inputPtr = fopen("001.dat","a "); outputPtr = fopen("001.dat","a "); fprintf(inputPtr,"input"); fprintf(outputPtr,"\n"); fprintf(outputPtr,"output"); 印出來是變成 input output 而不是 output input 請問是因為檔案的游標只有一個的關係 所以造成兩個指標都在同一個位置嗎
盡量不要這麼做, 這樣只是自尋煩惱, 你還必須考慮現在檔案指標到底被方寫到哪裡了, 若你要讀取某部份的資料, 你可以用
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-30 19:54:44 IP:221.169.xxx.xxx 未訂閱
建議你改成對字串來處理 等字串完成之後再一次寫入檔案
系統時間:2024-11-22 11:41:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!