【C语言】实现文件拷贝功能(文件,主函数参数)

来源:互联网 发布:算法初步例题 编辑:程序博客网 时间:2024/06/07 04:11
/* *实现文件拷贝 * */#include <stdio.h>int main(int argc, char **argv) {//第二个参数是2级指针,用户用户在控制台输入神秘,就存在这里什么,下面的程序可以像使用数组一样使用这里的内容    int size = 0;//用于判断是否读取结束的    char buf[100] = {0};//字符类型只有1字节,可以将各个类型的拿出来    FILE *p_src = NULL, *p_dest = NULL;    if(argc < 3) {//检查一下命令有几部分,是否够3部分,既./a.out 源地址 目的地址        printf("命令错误!\n");        return 0;    }    //打开第一个文件,即已存在的文件    fopen(*(argv + 1), "rb");//不知道是文本还是二进制,所以统一用二进制    if(!p_src) {        return 0;    }    //打开第二个文件,不存在的文件    p_dest = fopen(*(argv + 2), "wb");//以二进制打开,不能用a方式    if(!p_dest) {        fclose(p_src);//当打开目标文件出错时,原始文件已经打开了,这里会直接结束程序,所以应该结束原始文件        p_src = NULL;        return 0;    }    while(1) {        size = fread(buf, sizeof(char), 100, p_src);//一次存储100字节整数倍,导致原目大小不一致,所以在存的时候用size        fwrite(buf, sizeof(char), size, p_dest);        if(!size) {            break;        }    }    fclose(p_src);    p_src = NULL;    fclose(p_dest);    p_dest = NULL;    return 0;}
阅读全文
0 0