2011-02-16 52 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

如果他回答了你的问题,一定要标记他的答案是正确的! –