#include<stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
/*
* function: 拷贝功能
* @param [ in] 目标文件 源文件
* @param [out]
* @return 返回文件行数
*/
int copy_string(FILE *src_file,FILE *dest_file)
{
char ch[1024] = "";
int line = 0;
while(fgets(ch,sizeof(ch),src_file) != NULL)
{
if(ch[strlen(ch)-1] == '\n')
line++;
fputs(ch,dest_file);
}
return line;
}
int main(int argc, const char *argv[])
{
if(argc < 2)
{
printf("Fail to copy\n");
return -1;
}
FILE *src_file = NULL;
FILE *dest_file = NULL;
//打开源文件和目标文件
src_file = fopen(argv[1],"r");
dest_file = fopen(argv[2],"w");
if(src_file == NULL||dest_file == NULL)
{
perror("fopen");
return -1;
}
//对源文件argv[1]和目标文件argv[2]进行copy处理
int line = copy_string(src_file,dest_file);
printf("文件的行数为: %d\n",line);
//关闭源文件和目标文件
fclose(src_file);
fclose(dest_file);
return 0;
}
在拷贝之前,copy_string.txt文件不存在
程序运行编译成功并拷贝之后, copy_string.txt文件存在
程序运行显示行数
源文件内容
目标文件内容