-5
while (fgets(line, MAX_LINE_LEN-1, infile) != NULL) {
    num_lines += 1;
    num_chars += strlen(line);
    if (strncmp(line, "", MAX_LINE_LEN) != 0) {
        num_words++;
    }
}

プログラム全体で単語数をカウントします。このコードのチャンクは、テキストの行数を増やして単語を数えますが、ここで何が起こっているのかわかりません。それはどのように機能しますか?

4

2 に答える 2

0

次のように書くことで、コードを大幅に簡素化できると思います。

if (line[0] != '\0') {

これは次のとおりです。

if (strncmp(line, "", MAX_LINE_LEN) != 0) {

line本質的にはそうです-空でない文字列かどうかをチェックします。

あなたの質問に答えるために-サイクルの実行後、num_wordsファイル内の空でない行の数に等しくなります。

于 2013-05-21T06:25:38.320 に答える