【发布时间】:2020-12-18 04:43:37
【问题描述】:
我必须计算 C 文件注释中的字符和单词,包括单行 cmets 和阻塞注释。这是我所拥有的:
#include <stdio.h>
#define IN = 1
#define OUT = 0
main() {
int c, nc;
nc = 0;
while ((c = getchar()) != EOF) {
if (c == '/') {
if (getchar() == '/')
while (getchar() != '\n')
++nc;
}
}
if (c == '/') {
if (getchar() == '*')
while (getchar() != '/')
++nc;
}
printf("Character Counts: %d\n", nc);
}
它适用于每一行注释 (//),但它会跳过被阻止的 cmets (/*...*/)。我觉得它永远不会进入被阻止评论的 if 块。非常感谢!
【问题讨论】:
-
不应该
while (getchar() != '/')是while (getchar() != '*')? -
我是这么想的,但是如果块永远不会进入