【发布时间】:2019-02-10 01:14:03
【问题描述】:
我目前正在尝试计算文本文件中的字符数,不包括行 cmets(例如 //comment),因此我正在尝试识别注释的开头(//)并使用 while 循环来读取直到我遇到 EOF 或换行符为止的评论,因此我知道评论已经结束。问题是,当我使用双 while loop() 过滤掉行 cmets 时,它会导致无限循环,因为它不会退出内部 while 循环。这是我的代码。有没有人知道为什么会这样?我难住了。
int numChars = 0;
int c = 0;
int prevc = 0;
while ((c = getchar()) != EOF) {
if (c == '/' && prevc == c) {
while (c != '\n' || c != EOF) {
c = getchar();
}
}
numChars++;
prevc = c;
}
例如,如果文本文件包含 //Hello,它应该输出 0 个字符,而如果文本文件包含 Hello,它应该输出 5 个字符。
【问题讨论】:
标签: c