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

關於feof函數一問

答題得分者是:allenchan
gump996
一般會員


發表:10
回覆:8
積分:3
註冊:2002-10-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-03 15:03:53 IP:218.164.xxx.xxx 未訂閱
底下是一個我寫的程式,為了尋找檔案中的極大極小值(但是不含第一欄):
 
#include "stdafx.h"    #define CHANNELS 3    int _tmain(int argc, _TCHAR* argv[])
{
        FILE *fp;
        int i;
        double dColumn[CHANNELS 1];
        double dMax[CHANNELS 1], dMin[CHANNELS 1];            for (i=0; i dMax[i])
                                                        dMax[i] = dColumn[i];                                                    if (dColumn[i] < dMin[i])
                                                        dMin[i] = dColumn[i];
                                        }                                    }
                        }                            for (i=1; i    原本文字檔案的內容:
0  0.1  0.2  0.3
1 -0.1 -0.2 -0.3
2  1.0  2.0  3.0    執行後的結果:
Col0=0.000000
Col1=0.100000
Col2=0.200000
Col3=0.300000
Col0=1.000000
Col1=-0.100000
Col2=-0.200000
Col3=-0.300000
Col0=2.000000
Col1=1.000000
Col2=2.000000
Col3=3.000000
Col0=2.000000  
Col1=1.000000  
Col2=2.000000  
Col3=3.000000
Ch1: Max= 1.000000
     Min=-0.100000
Ch2: Max= 2.000000
     Min=-0.200000
Ch3: Max= 3.000000
     Min=-0.300000
以上紅色標註的地方為何會多算一次? 是因為feof()函數的關係? 望請各位前輩先進不吝給予解惑,謝謝! 發表人 - gump996 於 2004/12/03 15:09:37
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-03 15:33:48 IP:203.70.xxx.xxx 未訂閱
應該是你的文字檔案多了一行換行    0 0.1 0.2 0.3 1 -0.1 -0.2 -0.3 2 1.0 2.0 3.0 <---- 有個換行符號在這 或改一下這邊: fscanf(fp, "%lf", &dColumn[i]); 改成下面這樣: if (EOF == fscanf(fp, "%lf", &dColumn[i])) break; 發表人 - allenchan 於 2004/12/03 15:53:20
系統時間:2024-06-28 19:35:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!