fgets()中的数组大小

con*_*sed 0 c fgets

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

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

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

可能吗?该怎么办?

nos*_*nos 6

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

char third[100];

if(fgets(third,sizeof(third),old) != NULL) {
  size_t len = strlen(third);
  ..
} 
Run Code Online (Sandbox Code Playgroud)

  • 如果他回答了你的问题,请务必将答案标记为正确! (2认同)