fgets()中的数组大小

时间:2011-02-16 18:58:59

标签: c fgets

我使用fgets读取行格式.txt文件。我传递一个数组作为第一个参数。不同的行填充数组中不同的空间量,但我想知道读取的行的确切长度,并根据该行做出决定。有可能吗?

FILE * old;
old = fopen("m2p1.txt","r");
char third[100];
fgets(third,sizeof(third),old);

现在如果我要求sizeof(第三个),它显然是100因为我自己声明了(我不能声明'第三个'数组而没有指定大小)但是我需要得到从文件中读取的行的确切大小(如它可能没有填写enitre数组。)

有可能吗?该怎么办?

1 个答案:

答案 0 :(得分:6)

如果fgets成功,它会将一个字符串读入缓冲区。使用strlen()来查找它的长度。

char third[100];

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