#include<stdio.h>
#include <string.h>
int sizeof_file(FILE *fp_r);
int line_file(FILE *fp_r);
int main(int argc, const char *argv[])
{
if(argc < 2)
{
printf("请在命令行传参>>>");
return -1;
}
//以读的方式打开源文件
FILE *fp_r = fopen(argv[1], "r");
if(NULL==fp_r)
{
perror("fopen");
return -1;
}
printf("%s的大小为%d,", argv[1], sizeof_file(fp_r));
fseek(fp_r, 0, SEEK_SET);
printf("行数为%d\n", line_file(fp_r));
//关闭文件
fclose(fp_r);
return 0;
}
//计算文件大小
int sizeof_file(FILE *fp_r)
{
char arr[32] = "";
int num = 0;
while(fgets(arr, sizeof(arr), fp_r) != NULL)
{
num = num+strlen(arr);
}
return num;
}
//计算文件行数
int line_file(FILE *fp_r)
{
char c = 0;
int line = 0;
while(1)
{
c = fgetc(fp_r);
if(c == EOF)
{
break;
}
if(c == '\n')
{
line++;
}
}
return line;
}
作业:通过命令行传参,传入文件名,统计大小,封装函数。通过命令行传参,传入文件名,统计行数,封装函数。
最新推荐文章于 2024-06-17 19:20:01 发布