用c语言编写一个程序 统计文件结尾之前读取的字符
时间: 2024-10-13 15:14:12 浏览: 53
在C语言中,你可以使用`fread`函数从文件中读取数据,并结合循环结构统计文件结尾前的字符数。以下是一个简单的示例程序,该程序会打开一个文本文件,逐行读取直到文件结束:
```c
#include <stdio.h>
#include <string.h>
int main() {
FILE *file = fopen("filename.txt", "r"); // 替换为你要读取的文件名
if (file == NULL) {
printf("Error opening file.\n");
return 1;
}
char buffer[BUFSIZ]; // 用于存储一行的数据
size_t bytes_read = 0;
while ((bytes_read = fread(buffer, sizeof(char), BUFSIZ, file)) > 0) {
buffer[bytes_read] = '\0'; // 将未读完的部分设为'\0'以便处理字符串
int count = strlen(buffer); // 计算这一行的字符数
printf("Characters read before EOF: %d\n", count);
}
fclose(file);
if (feof(file)) {
printf("Reached end of file.\n");
} else {
printf("Error reading file.\n");
}
return 0;
}
```
在这个程序中,我们首先打开文件并检查是否成功。然后在一个`while`循环中,持续读取文件内容直到遇到文件结束标志(由`feof(file)`判断)。每次读取后,我们将读取到的字符串结束符`\0`设置为最后一个字符,计算字符串长度(即这一行的字符数),然后输出结果。
阅读全文