2011-02-16 95 views
0

我使用fgets讀取行格式的.txt文件。我傳遞一個數組作爲第一個參數。不同的行可以在數組中填充不同數量的空間,但是我想知道所讀取的行的確切長度,並根據該行進行決策。可能嗎?fgets中的數組大小()

FILE * old; 
old = fopen("m2p1.txt","r"); 
char third[100]; 
fgets(third,sizeof(third),old); 
現在如果我要的sizeof(三)

,它顯然100,因爲我宣佈所以我自己(我不能宣佈「第三個」陣列時不指定大小),但我需要得到讀行的確切大小來自文件(因爲它可能不會填入enitre數組)。

這可能嗎?該怎麼辦?

回答

6

如果fgets成功,它會將一個字符串讀入緩衝區。使用strlen()來查找它的長度。

char third[100]; 

if(fgets(third,sizeof(third),old) != NULL) { 
    size_t len = strlen(third); 
    .. 
} 
+0

謝謝!這很簡單。我很抱歉成爲一個白癡:D – confused

+2

如果他回答了你的問題,一定要標記他的答案是正確的! –