C语言代码计算神器for Mac
来源:互联网 发布:图像复原的数据集 编辑:程序博客网 时间:2024/05/20 01:11
- 程序功能
- 精确计算一个文件夹中的所有子文件夹中的指定类型代码的行数,人为的换行都会被自动忽略不计。
- 操作方法
- 用X-Code编译完成将可执行文件拖到桌面上双击打开后根据提示操作。
- 代码如下
#include<stdio.h>#include<stdlib.h>#include<string.h>//计算代码行数int countAmount(char a[]){ int i,sum = 0; for(i = 0; a[i]; i++) { int flag = 0; //查找这个回车符与上一个回车符之间是否存在内容,回车符的ASCII值是10 if (a[i] == 10) { for(int j = i - 1; j > 0 && a[j] != 10; j--) { //ASCII值13不知道是什么字符,但总是出现在换行前面 if (a[j] != ' ' && a[j] != 13) { flag = 1; break; } } } if (flag) { sum++; } } //如果最后一行没有换行则加1 if (a[i-1] != 10) { sum++; } return sum;}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]; /**单个文件代码数量*/ int singleFileAmount; /**所有文件代码总量*/ int allFileAmount; /**文件的数量*/ int fileNum; char ch,ch2; int i,flag; 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); fTempFile = fopen(tempFile,"r"); fileNum = 0; allFileAmount = 0; while(1) { i=-1; //每次得到一个文件的全路径 while((singleFile[++i]=fgetc(fTempFile))!=10&&singleFile[i]!=EOF); if(singleFile[i]==EOF) { break; } singleFile[i]=0;//文件内容结尾标志 singleFileAmount = 0; ch2 = 0; fSingleFile=fopen(singleFile,"r");//打开文件 i=0; while((ch=fgetc(fSingleFile))!=EOF) { singleFileContent[i++] = ch; } singleFileContent[i] = 0; singleFileAmount = countAmount(singleFileContent); fileNum++; printf("%d:%d行 %s\n",fileNum,singleFileAmount,singleFile); allFileAmount += singleFileAmount; fclose(fSingleFile); } fclose(fTempFile); //生成删除临时文件的命令 strcpy(singleFile,"rm "); strcat(singleFile,tempFile); system(singleFile);//删除临时文件 printf("\n\n此文件夹下:\n\n"); printf("共计%d个.c文件\n\n",fileNum); printf("共计代码:%d行\n\n",allFileAmount); } return 0;}
- 结果如下
0 0
- C语言代码计算神器for Mac
- C语言代码合并神器for Mac
- C语言代码搜索神器for Mac
- C语言文件提取神器for Mac
- C语言删除单个代码的注释for Mac
- C语言删除文件夹下所有代码的注释for Mac
- C语言扫雷游戏for Mac
- mac 如何运行c语言代码
- 协方差计算的C语言代码
- 协方差计算的C语言代码
- 常用矩阵计算C语言代码
- 协方差计算的C语言代码
- TextExpander for Mac 5.1 简体中文版 MAC 下输入增强神器
- WebStorm for Mac 2016.2 Wen 前端开发神器
- 48行计算24点C语言代码(转载)
- C语言-计算某段代码的运行时间
- [代码实例][C语言]计算文件的MD5值
- C语言-计算某段代码的运行时间
- 二叉搜索树
- hibernate笔记
- 线程同步(计时器)
- SecureCRT 连接虚拟机Linux
- SpringMvc Eclipse搭建web项目
- C语言代码计算神器for Mac
- A* 寻路
- 软件开发生命周期的管理
- android五中方式调用服务service中的方法
- [Contest] THUSC 2016 解题报告
- tomcat java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListen
- C语言代码搜索神器for Mac
- JS交互的方法(下)WKWebView
- 大型网站架构架构及性能优化方案