看看自己写了多少代码

原创 2010年05月31日 19:27:00

闲来无事,化了点时间,写了这个代码量检测,比较简陋,实现了大概的功能,循环遍历一个盘符下的所有文件,找出.cpp(或者别的),然后打开文件,看有多少行数,数据结构用的是栈,并没有用递归算法,怕文件埋得太深,导致效率太低,以前看到说递归7次以上 效率会很差,有待求证,贴上代码

 /*
Author:chao
Time:2010-5-16
compiler:gcc
os:xp
*/
#include <cstdlib>
#include <iostream>
#include<stack>
#include<string>
#include<fstream>
#include<exception>
#include<algorithm>
#include"dir.h"
#define ISRIGHT 1

using namespace std;

string panfu="E:";//在这里改 初始位置
string xiegang="//";

string filegeshi2="*.*";

string filetype=".cpp";// 这里可以修改需要查找的类型
int hangshu=0;  //行数

int countsofhangshu(string filename){
 const char *fn=filename.c_str();//stirng ->const char*
 fstream infile(fn);
 int ret=0;
 if(infile){
  string s;
  while(getline(infile,s))
  ret++;
 
  }
 
 
 return ret;
}


void bianlifile(stack<string> &st,ostream &out=cout)
{

    string top=st.top();
    string temp=top;
    st.pop();        //退栈
 const char *currentpath=temp.c_str();//string ->const char *
 temp+=xiegang;
 temp+=filegeshi2;
 
 const char *tempath=temp.c_str();

 struct _finddata_t temfile;//文件(夹)结构
 long handle= _findfirst(tempath,&temfile);//第一个 kendingshi .
 
 if(handle!=-1)
 {
  _findnext(handle,&temfile);//第二个肯定是 ..
 
 }//if(handle!=-1)
 while(!_findnext(handle,&temfile))
 {
  
   if(temfile.attrib==_A_SUBDIR)
    {
  
    string pushname;//加入堆栈的名字
        
    pushname+=currentpath;
    pushname+=xiegang;
    pushname+=temfile.name;
    st.push(pushname);
   // cout<<"foder:"<<pushname<<endl;
    }//如果是文件夹,则加入堆栈
   else//否则,判断是不是要找的文件格式,并统计行数
   {
   string tems=temfile.name;
   unsigned pos=tems.find(filetype);
 
   if(pos!=-1)
   if(pos+filetype.size()==tems.size())
   {//find filetype
    string temname;
    temname+=currentpath;
    temname+=xiegang;
    temname+=temfile.name;
    int temh=countsofhangshu(temname);
    out<<temname<<":"<<temh<<endl;
    hangshu+=countsofhangshu(temname);//统计行数
          }
  
    }
    }//while next

 
}
int main(int argc, char *argv[])
{
 stack<string> s1;
 s1.push(panfu);
 int max1=0;//进栈最大值
 cout<<"如果盘符下放置比如e:放置文件则不能检测到"<<endl;
 ofstream outfile("out.txt");
 while(s1.empty()==0){
  if(max1<s1.size())
   max1=s1.size();

  bianlifile(s1,outfile);//遍历整个盘符
 

 }
  cout<<"max:size"<<max1;
 
 
 
 cout<<"Total:"<<hangshu;
 system("PAUSE");
    return EXIT_SUCCESS;
}

如何统计自己写了多少代码

心血来潮,学了快一年java了,想看看自己写了多少行代码,基本思路是当初看毕向东视频时,讲过如何遍历文件, 然后自己添加了记录行数的功能,代码早就写好了,就是懒得放到博客上,现在放上来,代码如下: ...
  • yj7758423
  • yj7758423
  • 2016-01-06 11:03:29
  • 875

利用递归查询有多少行Java代码

查询写了多少行Java代码
  • qq_34012703
  • qq_34012703
  • 2017-09-28 21:52:54
  • 61

统计自己写了多少行代码

#!/bin/sh # count lines of code that you ever have write if [ $# -lt 1 ]; then echo "Usage: $0 ...
  • agan04
  • agan04
  • 2011-10-31 14:10:38
  • 820

代码行数统计工具

  • 2017年11月07日 20:18
  • 70KB
  • 下载

Python 练习 06 有个目录,里面是你自己写过的程序,统计一下你写过多少行代码。包括空行和注释

#有个目录,里面是你自己写过的程序,统计一下你写过多少行代码。包括空行和注释 import os import re os.chdir('文件路径') fh=open('文件名', 'r', en...
  • fat_summer
  • fat_summer
  • 2018-01-21 15:30:44
  • 205

统计自己写了多少代码

07年上半年C语言写了1000行代码07下半年C语言写了3000行数据结构代码,Java写了1000行代码08年上半年C语言写了9000数据结构课程设计代码,Java写了3000行代码08年下半年C+...
  • yangzhenping
  • yangzhenping
  • 2010-08-29 01:02:00
  • 1432

自己写了多少行代码?复制了多少?

   学java好几年了,也做了很多项目。但是问一问自己,多少行代码是自己动手写的?那些又是从论坛,从别的页面复制过来的呢?如果不要上网,自己能开发出那个项目吗? 诸多的问题归结到一起就是:会什么?能...
  • mayuxi1988
  • mayuxi1988
  • 2011-06-01 20:06:00
  • 336

看看自己都去过了中国哪些地方

早上看到 Ricky 在玩这个,偶也去填了一下,原来这些年偶去过的地方还不少呢 呵呵~~~create your own China map...
  • jackei
  • jackei
  • 2007-07-16 09:10:00
  • 528

我用四天的时间写了四行代码

前两周的时候我一直被一个问题所困扰,是一个关于IIC通信的问题。 我本来在进行的项目需要用到cypress的一款主控芯片。该芯片是cypress的psoc4000系列的一款芯片,这款芯片主打的功能是触...
  • ma57457
  • ma57457
  • 2017-05-11 23:30:15
  • 3393

java Zlib算法

  • 2011年12月21日 10:25
  • 310KB
  • 下载
收藏助手
不良信息举报
您举报文章:看看自己写了多少代码
举报原因:
原因补充:

(最多只允许输入30个字)