0

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

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

现在如果我要求 sizeof(third),它显然是 100,因为我自己声明了(我不能在不指定大小的情况下声明“第三个”数组)但我需要获取从文件中读取的行的确切大小(因为它可能不会填写整个数组)。

可能吗?应该怎么做?

4

1 回答 1

7

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

char third[100];

if(fgets(third,sizeof(third),old) != NULL) {
  size_t len = strlen(third);
  ..
} 
于 2011-02-16T19:01:00.187 回答