2

Cで単純なLOCカウンターを作成して、Cソースファイルに含まれるコードの行数をカウントしています。これは、コマンドラインから実行し、ターゲットファイルを入力としてリダイレクトし、合計行数が標準出力に出力されることを確認することを目的としています。例えば:

  counter.exe < counter.c
  15

これまでのところ、私が使用しているルールは次のとおりです。

  1. 3文字を超える行のみをカウントします(空白行や、閉じ中括弧とセミコロンしかない行などはありません)。

  2. スペースを文字として数えないでください。

これが私のプログラムです:

#include <stdio.h>

int main() {

    int input;
    int linecount = 0;
    int charcount = 0;

    while ((input = getchar()) != EOF) {

        if (input == ' ') {
        }
        else if (input == '\n') {
            if (charcount > 3) {
               linecount++;
            }
            charcount = 0;
        }
        else {
            charcount++;
        }
    }

    printf("%d\n", linecount);

    return 0;
}

私の質問は、これをより有効な手段にするために、ルールにいくつかの改善を提供できますか?コメントを有効なコード行として数えることがよくありますか?スペースや空白行はどうですか?

LOCカウントの有効性について一般的な議論を始めたくありません。これはいくつかのインタビューで尋ねられたものであり、一般的な意味で、自分のプロジェクトのコード行数を知る価値があると思います。ありがとう!

4

5 に答える 5

7

一般的に、人々は次のことを行います。

  • コメントをLOCとしてカウントする
  • 空白行をLOCとしてカウントします

ただし、人々は次のことも想定/実践しています。

  • 含まれているコメントは必要/有用です(無償ではありません)
  • 空白行は過度ではなく、明確にするために存在します

結果として、コード行カウンターは、通常、計算ですべての改行を考慮に入れます。

于 2011-03-11T16:00:12.897 に答える
6

プログラムを書かないでください。使用するwc --lines

于 2011-03-11T15:58:59.307 に答える
2

これはプログラミングの例だと思いますが、Windowsコマンドラインを使用したい場合はこれを見つけまし

につながる:

findstr /R /N "^" *.h *.c | find /C ":"

.hおよび.cファイルのすべての行をカウントします。

于 2013-05-21T10:57:59.263 に答える
1

私はkvistaとは異なる開発スタイルから来たと思いますが、コードの行とコメントを別々にカウントしました。コメントは、合計行(コメント+コード)の一定の割合になると予想しました。空白行はまったくカウントしませんでした。

プログラミングの課題を少し探している場合は、Cプログラムの循環的複雑度(または条件付き複雑度)を測定できます

于 2011-03-11T17:22:01.293 に答える
0

アプリケーションの作成とデバッグにかかる​​時間をスケジュールします。終了日に注意してください。

次のようなツールをWebで検索するのに時間を費やしてください:http:
//www.campwoodsw.com/sourcemonitor.html

あなたのスケジュールの残りの時間を取り、休暇に行きます。:-)

そうでなければ、タスクは巨大になります。コメントの解析など。行の定義(および行にあるステートメントまたはトークンの数)。空白行はカウントされますか?

他のプロジェクトのために貴重な時間を節約してください。既存のツールを使用します。

于 2011-03-11T20:36:00.610 に答える