我使用fgets读取行格式.txt文件。我传递一个数组作为第一个参数。不同的行填充数组中不同的空间量,但我想知道读取的行的确切长度,并根据该行做出决定。有可能吗?
FILE * old;
old = fopen("m2p1.txt","r");
char third[100];
fgets(third,sizeof(third),old);
现在如果我要求sizeof(第三个),它显然是100因为我自己声明了(我不能声明'第三个'数组而没有指定大小)但是我需要得到从文件中读取的行的确切大小(如它可能没有填写enitre数组。)
有可能吗?该怎么办?
答案 0 :(得分:6)
如果fgets成功,它会将一个字符串读入缓冲区。使用strlen()来查找它的长度。
char third[100];
if(fgets(third,sizeof(third),old) != NULL) {
size_t len = strlen(third);
..
}