線的長度A prgram這裏的程序:,打印用C
#include <stdio.h>
#define BUF_LEN 200
#define LINE_NUMBER 3
int line_len(char* filename, int n)
{
FILE* f;
char buf[BUF_LEN];
int j, i = 0;
if ((f = fopen(filename, "r")))
{
for (j = 0; j < n; j++)
fgets(buf, BUF_LEN, f);
for (i = 0; buf[i]; i++) /* find end of buf */ ;
fclose(f);
}
return i;
}
int main()
{
printf("%d\n", line_len("test.txt", LINE_NUMBER));
return 0;
}
據我所知,功能line_len
接收文件和我們感興趣的行號名稱它然後以只讀模式打開文件並迭代直到達到n
行,通過每次迭代讀取文件f
中的BUF_LEN-1
個字符並將這些字符存儲在buf
中。所以當第一個for循環中斷時,buf
將包含第一個n
行的所有字符。
我不明白需要第二個循環。它何時終止? 這個功能是如何工作的?如果在第一個循環的末尾buf
將包含第一個n
行的字符,那麼該函數如何返回該行的長度爲n
?
在此先感謝!
你忘記了寫任何代碼行嗎? – Marievi
代碼實際工作,對嗎? –
第一個for循環將第n行的每個字符添加到buf數組中。第二個for循環計算buf數組(i)的長度並返回該數組。 – Forklift