L30727795 2021-06-29 17:24 采纳率: 50%
浏览 52
已采纳

在cmd 上实现C语言程序的合并文件。

编写MergeFile命令,实现多文件的合并操作,命令行的最后一个参数为合并后的文件名,调用示例:“MergeFile.exe a.txt b.txt c.txt d.txt newfile.txt”,-该程序执行后,将a.txt b.txt c.txt d.txt全部合并到一起并写入到新的newfile.txt中,同时在屏幕中提示用户文件合并完毕。

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-06-29 17:35
    关注

    那你得用int main(int argc,char *argv[])这种方式,其中argc是参数数量,argv是参数数组,通过命令行输入。

    代码根据参数传入的文件名进行fopen,fread读取后,fwrite写入新文件即可

    int main(int argc, char* argv[])
    {
        if(argc < 2)
        {
            printf("please input files\n");
            return 0;
        }
        FILE *fp = fopen(argv[argc-1],"w");
        if(fp == NULL)
        {
            printf("write file open error\n");
            return;
        }
        FILE *fp1 = NULL;
        for(int i=0;i<argc-1;i++)
        {
            fp1 = fopen(argv[i],"r");
            if(fp1 == NULL)
            {
                printf("file%d open error!\n",i+1);
                continue;
            }
            char buf[1000] = {0};
            int n = fread(buf,1,1000,fp1);
            fclose(fp1);
            fwrite(buf,1,n,fp);  
        }
        fclose(fp);
        system("pause");
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c