c语言软件mac版,C语言代码合并神器for Mac

#include

#include

#include

int main()

{

/**要执行的find命令*/

char command[5000];

/**需要合并代码的文件夹路径*/

char folderPath[5000];

/**文件后缀名*/

char suffix[20];

/**存放所有搜索到的文件路径的临时文件,在这个文件中每个路径单独占一行,最后这个文件会被删除*/

char tempFile[5000];

/**临时文件的指针*/

FILE *fTempFile;

/**单个文件路径*/

char singleFile[5000];

/**单个文件的指针*/

FILE *fSingleFile;

/**存放单个文件中的所有内容*/

char singleFileContent[1000000];

/**合并后的文件*/

char mergedFile[5000];

/**合并文件的指针*/

FILE *fMergedFile;

/**文件的数量*/

int fileNum;

char ch;

int i;

while(1)

{

printf("请拖入文件夹路径:");

scanf("%s",folderPath);

printf("请输入要合并文件的后缀(如.c,.txt):");

scanf("%s",suffix);

//生成不完整的find命令

strcpy(command,"find ");

strcat(command,folderPath);

strcat(command," -name *");

strcat(command,suffix);

strcat(command,">>");

//生成临时文件的全路径

strcpy(tempFile,folderPath);

strcat(tempFile,"/temp.txt");

//生成完整的find命令

strcat(command,tempFile);

//执行Unix下的find命令,将搜索到的内容输出到temp.txt文件中

system(command);

//生成合并的文件全路径

strcpy(mergedFile,folderPath);

strcat(mergedFile,"/mergedFile.txt");

fTempFile=fopen(tempFile,"r");

fMergedFile=fopen(mergedFile,"w");

fileNum=0;

while(1)

{

i=-1;

//每次得到一个文件的全路径

while((singleFile[++i]=fgetc(fTempFile))!=10&&singleFile[i]!=EOF);

if(singleFile[i]==EOF)

{

break;

}

singleFile[i]=0;//文件内容结尾标志

fSingleFile=fopen(singleFile,"r");//打开文件

i=0;

while((ch=fgetc(fSingleFile))!=EOF)

{

singleFileContent[i++]=ch;

}

singleFileContent[i]=0;

fileNum++;

printf("\n%d:%s\n\n",fileNum,singleFile);

fprintf(fMergedFile,"%d:%s\n",fileNum,singleFile);

fprintf(fMergedFile,"%s\n\n",singleFileContent);

fclose(fSingleFile);

}

fclose(fTempFile);

fclose(fMergedFile);

//生成删除临时文件的命令

strcpy(singleFile,"rm ");

strcat(singleFile,tempFile);

system(singleFile);//删除临时文件

if(fileNum==0) printf("\n查询无结果!\n\n");

else printf("\n%d个文件已合并输出到%s下!\n\n",fileNum,mergedFile);

}

return 0;

}```

- 结果如图

![屏幕快照 2016-06-15 23.36.19.png](http://upload-images.jianshu.io/upload_images/2284089-03cd2c730d162c90.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值