练习:使用fgets统计个输入文件的行号,文件的名字通过fgets输入。 输出结果为 ./a.out 请输入文件名字 > hello.txt hello.txt文件的行号 = 10
时间: 2024-05-13 18:16:12 浏览: 57
统计文件行数
好的,我来帮您写一下代码。
```c
#include <stdio.h>
#define MAX_LEN 1000
int main() {
FILE *fp;
char filename[MAX_LEN];
char line[MAX_LEN];
int count = 0;
printf("./a.out 请输入文件名字 > ");
fgets(filename, MAX_LEN, stdin);
// 将换行符替换为结束符
filename[strlen(filename) - 1] = '\0';
fp = fopen(filename, "r");
if (fp == NULL) {
printf("打开文件失败!\n");
return 1;
}
while (fgets(line, MAX_LEN, fp) != NULL) {
count++;
}
printf("%s文件的行号 = %d\n", filename, count);
fclose(fp);
return 0;
}
```
这个程序首先会提示用户输入文件名,然后使用 `fgets` 函数读入文件名。接下来,程序会尝试打开这个文件,如果打开失败,则会输出错误信息并退出程序。
如果文件打开成功,则程序会使用 `fgets` 函数逐行读入文件内容,并在每读入一行后将计数器加一。最后,程序会输出文件名和行数,并关闭文件。
注意,程序中使用 `fgets` 读入文件名后,需要用字符串函数 `strlen` 将字符串长度减一,将最后一个字符(换行符)替换为结束符,否则打开文件可能会失败。
阅读全文