写一个copy string.c,利用fgetc和putc实现文件拷贝,拷贝完成后,最后输出拷贝的行数。
注:最后记得用fclose()函数关闭文件。
#include <stdio.h>
#include <string.h>
int copy_file(FILE* src_fp, FILE* dest_fp)
{
char ch[1024] = { 0 };
int line = 0;
while (fgets(ch, sizeof(ch), src_fp) != NULL) {
fputs(ch, dest_fp);
}
fseek(src_fp, 0, SEEK_SET);
while (fgets(ch, sizeof(ch),src_fp) != NULL) {
if (strlen(ch) == sizeof(ch) - 1) {
if (ch[sizeof(ch) - 2] != '\n') {
continue;
}
}
line++;
}
return line;
}
int main(int argc, char const* argv[])
{
FILE* src_fp;
FILE* dest_fp;
// 只读打开源文件
src_fp = fopen(argv[1], "r");
// 只写打开目标文件
dest_fp = fopen(argv[2], "w");
// 功能
int line = copy_file(src_fp, dest_fp);
printf("line = %d\n", line);
// 关闭文件
fclose(src_fp);
fclose(dest_fp);
return 0;
}
结果: