试图计算代码中的行数,但在C中陷入无限循环

时间:2012-12-31 05:51:57

标签: c

我一直在尝试创建一个函数来计算代码行数。这就是我想出来的,但却陷入了无限循环。

int numberoflines(char filename[]){
    FILE *file = fopen(filename, "r");
    int count = 0;
    int ch = 0;
    while( EOF != (ch = getchar())){
        if(ch == '\n'){
            count++;
        }
    }
    return count;
}

2 个答案:

答案 0 :(得分:9)

这不是一个无限循环,只是你不是从你打开的文件中读取,而是从标准输入中读取。请尝试使用getc(file)代替getchar()

答案 1 :(得分:3)

它不是在无限循环中,它是从标准输入读取的,可能是终端,因为您使用了getchar()而不是getc(file)

在你回来之前,你也应该fclose(file)