C++代码统计是一款专门为了编程人员准备的代码统计工具。如果你需要统计代码C++代码统计是一个非常不错的软件。该应用程序主要针对统计代码的数量和统计代码的行数开发。更新版本以最高级的C ++ / C语言编写,可以帮助用户更准确地计算C源代码的行数。换句话说,程序员每天必须做很多代码编程。对他们来说,拥有应用程序就像锦上添花,可以大大提高用户程序员的开发效率;非常适合程序员使用;用户正在使用中,只需提供包含C / C ++代码的目录,并计算目录中所有C / C ++文件的总代码行,有效代码行,注释行,空白行,所有代码都可以计数; (其中:总代码行=(有效代码行+注释行+空行)),每次找到目标代码文件时,都会创建一个任务并将其放入线程池中。线程池的设计是基于任务的,基于任务的则相比基于线程的优势;功能强大且实用,需要它的用户可以下载体验。
软件功能:
与其他代码统计工具本质上不同
因此,对于C系列开发人员而言,统计信息的准确性为100%准确。
速度也更快
测试20,000多个源文件的统计信息,
需要几分钟
可能比其他代码统计工具快几倍。
使用说明:
1.解压后运行“ CodeStat.exe”
2.单击该文件以添加文件或添加目录以开始统计,并支持VB6.0项目文件统计
3.完成后,您可以导出统计结果
近50,000个代码文件,总代码行1,183万,不到5分钟即可完成统计,速度仍然非常快。有人问,只用了5分钟即可完成统计。我们不会玩弄花招,不会谈论结果。作为比较,上面的源统计专家工具在分析和分析同一目录中的文件时,在过去半小时内没有给出结果。此工具的单个文件分析不准确。面对50,000个文件,恐怕它将是荒谬的错误并且运行缓慢。我认为没有必要再等待了。我果断地放弃了。
如果需要程序,可以在文章末尾的评论中保留邮箱O(∩_∩)O
在分析代码文件时,空白行得到了很好的处理。关键是识别有效的代码和注释代码。识别的主要原则是:
1.注释符合语法,不能在编译时报告。这是最重要的原则。
2.注释中的空白行是空白行,原始字符串中的空白行不是空白行
3.原始字符串中的注释(行注释/块注释)为有效代码,不能算作注释
4.注释中的原始字符串是注释,不能视为有效代码
为了验证程序逻辑的严格性和准确性,设计了以下复杂的代码片段:
从程序员的角度来看,绿色部分总共是11行注释,红色部分总共是16行代码,而第9行是空白行,但是因为它包含在原始字符串中,所以它是有效的代码行。
真正的空白行只有11和19行,共2行。
对于这样一个复杂的代码段,一种被称为市场上的源统计专家的工具将产生以下结果:
如您所见,当面对各种各样的注释样式和复杂的代码文件时,专家工具变得“麻木”,结果也不可靠。
该程序的输出是完全正确的。
在上面的复杂代码片段中,值得注意的是
o处理原始字符串,语法为R“()”,并且原始字符串的内容括在括号中
“ construction_tes”商店的内容为
这意味着内部的//和/ * * /注释符号不能被视为注释符号,即使将它们混合在一起,注释也将与注释嵌套在一起,无论组合多么复杂,它们也都是注释符号的一部分。原始字符串,是有效的代码。该程序的目的是使用原始字符串的语法构造规则来找出原始字符串的开始和结束位置。
在识别过程中,该程序所做的工作实际上是编译时语法/词法分析功能的一部分,这也使我可以更好地理解原始字符串和嵌套注释的语法规则。特别是,我在vs注释中找到了一个有趣的地方。 vs注释的快捷键将优先选择/ ** /样式注释。如果/ ** /无法胜任,它将使用//代替。
我之前读过一篇文章,建议仅使用//作为注释,而不是/ * * /,并且不嵌套/ * * /,因为后两个注释会增加解析文本分析程序的难度。如果注释以//开头,则很容易识别出代码行是注释。当我编写此代码行统计子视图时,我对这一建议有了更深入的了解。用//替换/ ** /应该作为代码规范来实现。
编写程序将不可避免地踩到坑上,在这里写下来避免以后再踩到同一个坑上。
1.在控制台程序中输入文件夹路径时,如果路径包含空格,则cmd将把空格前后的内容视为不同的参数,并且程序将错误地处理参数(路径无效)。用双引号将路径引起来,这是正常的。
2.该程序在控制台上运行,并且有中文乱码。项目设置为unicode。该程序打印的文件路径包含中文字符。控制台的默认代码页是936,GBK。开发环境和输出环境代码不一致。
乱码的屏幕截图。图片中的问号实际上是中文。
为了适应控制台的编码,只需使用setlocale(LC_CTYPE,“”)。
3.在标准库中ofstream的<<重载字符,处理宽字符不是很好,例如写std :: wstring内容将是错误的,但是使用std :: string不会是问题。但是,如果代码路径为中文,则无法输出。解决方案是用wofstream代替ofstream。还调用file.imbue(语言环境(“”,语言环境::所有^语言环境::数字));设置中文输出环境。
4.标准库的向量库push_back(插入元素)不是线程安全的,并且在多线程环境中写入此容器时需要将其锁定。当然,标准库中的大多数容器操作都是非线程安全的,因此请谨慎使用。
软件特色:
计算项目的代码行数,可以设置文件类型进行过滤,
支持使用Visual C ++开发的批处理添加文件。
此工具用于计算项目的代码行数。
您可以设置是否计算空白行,还可以配置用于过滤的文件类型。
支持按目录或文件添加。如果按目录添加,则仅添加所选目录下的文件,
注意事项:
1.需要的用户可以单击此网站上提供的下载路径来下载相应的程序安装包
2.通过解压缩功能打开压缩包并找到主程序
3.双击主程序以打开程序,然后进入程序的主界面