实现文件拷贝,例如将1.c中的内容拷贝到2.c中;
通过命令行传参的方式,传入文件名;计算一个文件的大小. 封装成函数
通过命令行传参的方式,传入文件名; 统计一个文件有几行。封装成函数
代码:
#include <stdio.h>
//封装计算大小行数函数
void size(const char* a)
{
int i=0;
int j=0;
char cont=0;
FILE *fp_size=fopen(a,"r");
if(NULL==fp_size)
{
perror("fopen");
return ;
}
while(1)
{
cont=fgetc(fp_size);
if(EOF==cont)
{
break;
}
i++;
if(10==cont)
{
j++;
}
}
if(fclose(fp_size)<0)
{
perror("fclose");
return ;
}
printf("文件大小为:%d\n",i);
printf("行数为:%d\n",j);
}
int main(int argc ,const char *argv[])
{
//打开文件
FILE* fp=fopen(argv[1],"r");
if(NULL==fp)
{
printf("line:%d\n",__LINE__);
perror("fopen");
return -1;
}
//拷贝操作
//循环读取单个字符并输出单个字符
//定义一个字符接受的变量
FILE* f=fopen(argv[2],"a");
if(NULL==f)
{
printf("line:%d\n",__LINE__);
perror("fopen");
return -1;
}
char a=0;
while(1)
{
a=fgetc(fp); //先读取单个字符
if(EOF==a)
{
break;
}
fputc(a,f); //将读取到的单个字符输出到指定文件中
}
//关闭文件
if(EOF==fclose(fp))
{
perror("fclose");
return -1;
}
if(EOF==fclose(f))
{
perror("fclose");
return -1;
}
//调用计算大小和行数的函数
size(argv[1]);
return 0;
}
效果: