测测你写了多少行代码【转】
下面的代码可以在codeblocks下运行,按照提示输入一个路径就可以知道自己在这个路径下的代码量了。我的有效代码为64572行,比想象中少好多啊,有效代码指的是出去一行上只有一个{}的那些行。欢迎留言。。。
#include <direct.h>
#include <string>
#include <vector>
#include <iomanip>
#include <ctime>
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
char str[1000];
int allline,effectline,big,small,allchar,visiblechar;
int filenum;
string bigfile,smallfile;
void count(string filename)
{
freopen(filename.data(),"r",stdin);
filenum++;
int line=0;
while(gets(str))
{
allline++;
line++;
bool flag=false;
for(int i=0; str[i]; i++)
{
if(!(str[i]==' ' || str[i]=='{' || str[i]=='}' || str[i]=='\t'))
{
flag=true;
visiblechar++;
}
if(str[i]=='{' || str[i]=='}')visiblechar++;
allchar++;
}
if(flag)effectline++;
}
if(big<line)
{
bigfile=filename;
big=line;
}
if(small>line)
{
smallfile=filename;
small=line;
}
fclose(stdin);
freopen("CON","r",stdin);
}
void getFiles(string path)
{
//文件句柄
long hFile = 0;
//文件信息
struct _finddata_t fileinfo;
string p;
if((hFile=_findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) != -1)
{
do
{
//如果是目录,迭代之
//如果不是,加入列表
if((fileinfo.attrib&_A_SUBDIR))
{
if(strcmp(fileinfo.name,".")!=0&&strcmp(fileinfo.name,"..")!=0)
getFiles(p.assign(path).append("\\").append(fileinfo.name));
}
else
{
string filename=p.assign(path).append("\\").append(fileinfo.name);
int t=filename.find(".cpp");
if(filename.length()-t==4)
count(filename);
t=filename.find(".java");
if(filename.length()-t==5)
count(filename);
}
}
while(_findnext(hFile,&fileinfo)==0);
_findclose(hFile);
}
}
int main()
{
allline=effectline=big=allchar=visiblechar=filenum=0;
small=0x7fffffff;
printf("请输入路径\n格式:\nE:\\yy\n");
string path;
cin>>path;
getFiles(path.data());
printf("<< %s >>下共有<< %d >>个源文件\n",path.data(),filenum);
printf("其中所有代码行数为<< %d >>行\n",allline);
printf("有效代码行数为<< %d >>行\n",effectline);
printf("每个文件平均行数为<< %d >>行\n",allline/filenum);
printf("代码最长的文件是 << %s >> 共有代码<< %d >>行\n",bigfile.data(),big);
printf("代码最短的文件是 << %s >> 共有代码<< %d >>行\n",smallfile.data(),small);
printf("所有的字符数<< %d >>个\n",allchar);
printf("其中可见字符数<< %d >>个\n",visiblechar);
printf("平均每个文件可见字符数<< %d >>个\n",visiblechar/filenum);
return 0;
}
转载于:https://www.cnblogs.com/AbandonZHANG/archive/2012/11/07/2759639.html
测测你写了多少行代码【转】相关推荐
- 《看聊天记录都学不会C语言?太菜了吧》(14)这么神奇?我写了20行代码竟然一行就可以搞定?
好消息2020年4月13日晚7.30我在CSDN开播,等你来聊天 预约连接:https://live.csdn.net/room/A757291228/MJWK0Gem 本系列文章将会以通俗易懂的对话 ...
- python实现统计你一共写了多少行代码
程序员要保证一定的代码量就必须勤奋的敲代码,但怎么知道自己一共写了多少代码呢,笔者用python写了个简单的脚本,遍历所有的.java,.cpp,.c文件的行数,但是正如大家所知,java生成了许多代 ...
- webstorm代码行数统计_来测试下 2019 你一共写了多少行代码?
写啊写代码,2019 你都写了多少行代码呢 自己动手实现一个代码统计工具 导入所需的库 这个程序需要用到的库有:os,time 这两个库都是 Python 自带的,所以我们直接 import 就行 i ...
- python写百行代码可运行_56 岁潘石屹学俩月 Python ,写下百行代码
原标题:56 岁潘石屹学俩月 Python ,写下百行代码 By 超神经 内容导读:跨界王潘石屹在近期迷上了编程,不仅高调宣布学习 Python,拜老师,还隔三差五晒出自己的「编程课作业」,和网友进行 ...
- 来测试下 2019 你一共写了多少行代码?
写呀写代码,2019 你都写了多少行代码呀 文章目录 自己动手实现一个代码统计工具 导入所需的库 定义要读取的文件地址 指定你要读取的文件类型 遍历目录 / 文件 代码分析 读取代码行数 代码测试 全 ...
- 女神相册密码忘记了,我只用Python写了20行代码
视频地址 我用20行代码,帮女神破解相册密码 一.事情是这样的 今早上班,公司女神小姐姐说,她去年去三亚旅游的照片打不开了 好奇问了一下才知道. 原来是,她把照片压缩了,而且还加了密码. 但是密码不 ...
- 写过25W行代码,3个操作系统:我如何做架构设计,来降低代码复杂度?
来源| 美团技术团队 作者| 政华,顺谱,陶鑫 导读:本文是作者阅读John Ousterhout的<A Philosophy of Software Design>之后,结合自己的工作经 ...
- python画人脸编程怎么写_Python 40行代码实现人脸识别功能
前言 很多人都认为人脸识别是一项非常难以实现的工作,看到名字就害怕,然后心怀忐忑到网上一搜,看到网上N页的教程立马就放弃了.这些人里包括曾经的我自己.其实如果如果你不是非要深究其中的原理,只是要实现这 ...
- 悲剧!他写了20000行代码,却连6岁孩子都比不过!
这个春天注定是不平静的,一场突如其来的疫情让很多人一夜之间丢了饭碗.老同学L就是其中之一. 年前,他还开心的在群里说发了年终奖请大家吃饭,一个月不到,他期待的奖金没了,公司业务调整,他成了被优化的30 ...
- 女神相册密码忘记了,我只用Python写了20行代码就破解了!
一.事情是这样的 今早上班,公司女神小姐姐说,她去年去三亚旅游的照片打不开了 好奇问了一下才知道. 原来是,她把照片压缩了,而且还加了密码. 但是密码不记得了,只记得是一串6位数字. 话说照片压缩率也 ...
最新文章
- Oracle中的date与timestamp
- 种草莓【字符串】【动态规划】
- Spring/SpingMVC常见问题总结
- ServiceComb
- P4146 序列终结者 平衡树 + lazy维护
- java工作面试必备知识 Java常用类库与技巧
- 项目添加GPUImage
- 感知机PLA算法实现[转载]
- 表级约束和列级约束(二十)
- 游戏开发之游戏策划的基本原则
- dubbo内核简介(附部分源码解读)
- 红黑树 一张导图解决红黑树全部插入和删除问题 包含详细操作原理 情况对比
- Hash表的平均查找长度ASL计算方法
- PB语言实现反射机制
- 从 MVC 到使用 ASP.NET Core 6.0 的Minimal API
- tensorflow roadshow 全球巡回演讲 会议总结
- 机器人搭建记录 HoshinoBot
- 使用express封装一个简单的http代理服务器以及手动设置Access-Control-Allow-Origin解决跨域问题
- 5G网络中的缩略语与简写
- WordPress支持ppt一键上传
热门文章
- Java(38)_BorderLayout布局
- oracle not in 改为 not exist
- 如何将数据渲染到页面上?
- 1006 换个格式输出整数 (15)
- 转载:C#7.0新特性(VS2017可用)
- linux的环境变量相关的小记
- 曲演杂坛--SQLCMD下执行命令失败但没有任何错误提示的坑
- Emulator Error: Could not load OpenGLES emulation library: Could not load DLL!
- C# 时时监听目录文件改动
- Java ME SDK 3.0.5发布!