计算代码行

sma*_*llB 7 c++ lines-of-code

我正在为C++项目的行计数器做一些研究,我对他们使用的算法很感兴趣.有谁知道我在哪里可以看到这种算法的一些实现?

ste*_*nix 19

cloc,这是一个免费的开源源代码计数器行.它支持多种语言,包括C++.我个人用它来获取我的项目的行数.

sourceforge页面,您可以找到要下载的perl源代码.


Jam*_*nze 4

'\n'好吧,如果通过行计数器,您指的是计算行数的程序,那么该算法非常简单:只需计算代码中的数量即可。另一方面,如果您指的是对 C++ 语句进行计数或生成其他指标的程序...虽然不是 100% 准确,但我过去仅通过对 '}' 和 ';' 进行计数就得到了相当不错的结果 (当然,忽略注释以及字符串和字符文字中的内容)。任何更准确的内容可能需要解析实际的 C++。

  • @smallB:看,这就是问题所在。/你/是决定一行代码是什么的人,因为/你/是要求算法的人。上面你抱怨它很简单(“一行代码与其中的代码是一致的。它能变得多么简单?”),但你无法定义其中的一行代码是什么。为你。显然,困难来自于您没有正确的定义,这就是为什么您必须询问是否“int a = 0;” 是代码。但关键是,你想要一个算法,却拒绝了许多现有的工具,说它不能做你想做的事。但你永远不会说出你想要什么。 (3认同)
  • @smallB 计算行数。目前尚不清楚你想要什么。删除注释并计算非空行?鉴于 C++ 不是面向行的,什么是一行代码? (2认同)