0

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

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;
}
4

2 回答 2

9

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

于 2012-12-31T05:54:19.923 回答
3

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

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

于 2012-12-31T05:54:51.303 回答