在c语言中如何在程序中知晓文件的长度或行数
时间: 2023-07-19 22:43:31 浏览: 60
在 C 语言中,可以使用标准库中的 `fseek()` 和 `ftell()` 函数来获取文件长度,具体实现如下:
```c
#include <stdio.h>
int main() {
FILE *fp = fopen("file.txt", "r");
if (fp == NULL) {
printf("Failed to open file!\n");
return -1;
}
// 定位到文件末尾
fseek(fp, 0, SEEK_END);
// 获取文件长度
long file_size = ftell(fp);
printf("File size: %ld bytes\n", file_size);
// 定位到文件开头
fseek(fp, 0, SEEK_SET);
// 逐行读取文件并统计行数
int num_lines = 0;
char buffer[256];
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
num_lines++;
}
printf("Number of lines: %d\n", num_lines);
fclose(fp);
return 0;
}
```
首先打开文件并检查是否成功打开,然后使用 `fseek()` 函数将文件指针定位到文件末尾,再使用 `ftell()` 函数获取指针位置(即文件长度)。接着,使用 `fseek()` 函数将文件指针定位到文件开头,然后使用 `fgets()` 函数逐行读取文件并统计行数。最后,关闭文件并输出结果。