全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1007
推到 Plurk!
推到 Facebook!

fprintf的使用問題

答題得分者是:fnk
rangen6912
一般會員


發表:11
回覆:5
積分:3
註冊:2004-04-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-16 17:30:00 IP:140.115.xxx.xxx 未訂閱
各位大大好: 小弟想把兩個計算的陣列輸出成為*.txt的檔案形式, 我的原始碼如下:   FILE *pt;   pt = fopen("C:\Documents and Settings\rangen\桌面\1.txt","w");   for (int j=0 ; j<5001 ; j++) { fprintf(pt,"%f %d\n", K1[j],K2[j]); } 但是老是出現下面的錯誤訊息, 請各位大大幫忙小弟解或一下,謝謝!
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-16 18:26:29 IP:219.137.xxx.xxx 未訂閱
rangen6912 您好: 您的陣列宣告呢?寫出來會比較清楚些。 我先猜測一下好了,大小是不是設成 5000?如果是的話,那麼迴圈的第二個參數應該設成 j<5000 而不是 j<5001 才對,否則就會超過陣列了。 如果我的猜測不正確,那麼您應該要除錯模式或步驟 (將輸出結果也輸出到一個 Memo 之類的可視物件中) 設法查出來,是在迴圈執行到何處時產生的錯誤 (j 值為何)?
fnk
高階會員


發表:40
回覆:149
積分:102
註冊:2004-01-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-16 18:34:18 IP:140.124.xxx.xxx 未訂閱
float K1[10] = {1,2,3,4,5,6,7,8,9,10};
int K2[10] = {1,2,3,4,5,6,7,8,9,10};
FILE *pt;
pt = fopen("C:\\1.txt","w");  // 是二條斜線, 不是一條 
for (int j=0 ; j<10 ; j  ) 
  {
  fprintf(pt,"%f %d\n", K1[j],K2[j]);
  }
fclose(pt);  // 請再加上此行 
另外, 別忘了要include "stdio.h" =========== 有興趣,就能進步 ===========
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-16 18:59:37 IP:219.137.xxx.xxx 未訂閱
還是 fnk 眼尖,我竟然看漏了路徑分隔符號,我一看是記憶體的錯誤,就沒管路徑的設定了,真是烏龍....。    建議 rangen6912 在開檔後確認一下檔案是否開啟成功會比較好些,例如:
AnsiString filename = "C:\\Documents and Settings\\rangen\\桌面\\1.txt";
FILE *pt;
if ((pt = fopen(filename.c_str(), "w")) == NULL) {
        ShowMessage("Cannot open output file!");
} else {
    for (int j=0 ; j<11 ; j  ) {
        fprintf(pt,"%f %d\n", K1[j],K2[j]);
    }
    fclose(pt);
}
rangen6912
一般會員


發表:11
回覆:5
積分:3
註冊:2004-04-20

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-20 14:48:39 IP:140.115.xxx.xxx 未訂閱
我初步試了一下,開檔後確認沒問題,謝謝RedSnow和fnk的大力幫助, 還有我想將路徑改成由使用者來輸入該怎麼樣來修改阿?
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-05-20 17:08:02 IP:219.137.xxx.xxx 未訂閱
rangen6912 您好:    您可以在 Form 加上一個 SaveDialog 元件,然後在按鈕的 OnClick 事件中,以 SaveDialog1->Execute() 來啟動對話框,在對話框內指定欲存放輸出結果的檔案路徑與名稱,然後將 SaveDialog1->FileName 設給我前一篇所寫範例中的 filename 變數即可。    您若對 SaveDialog 元件的使用方式不熟悉的話,可使用 "SaveDialog FileName Execute" 為關鍵字,搜尋站上的相關文章來參考一下。
rangen6912
一般會員


發表:11
回覆:5
積分:3
註冊:2004-04-20

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-05-28 01:08:34 IP:211.76.xxx.xxx 未訂閱
謝謝RedSnow的指點,我已經知道如何使用了。
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-05-28 02:34:11 IP:218.19.xxx.xxx 未訂閱
rangen6912 您好: 很高興知道您弄清楚使用方法了,祝您順心~
系統時間:2024-05-19 18:04:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!