while ((temp = fgetc(fp)) != EOF)
{
if(temp == '\n')
{
chars++;
lines++;
if((temp = fgetc(fp)) != EOF && (temp == '(' || temp == ')' || temp == '{' || temp == '}'))
{
chars++;
brackets++;
}
}
}
基本上我想计算随机 c 文件中的每个 ()、{} 和行。这个循环很好地计算了行数,但未能计算出所有指定的符号。知道这是为什么吗?
最佳答案
考虑一个简单的状态机结构,例如:
int ch;
while ((ch = getc(fp)) != EOF) {
switch (ch) {
case '\n':
chars++;
lines++;
break;
case '(': case ')': /* ... */
chars++;
brackets++;
break;
}
}
关于计算 C 中的特定字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21297292/