我一直在尝试创建一个函数来计算代码行数。这就是我想出来的,但却陷入了无限循环。
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;
}
答案 0 :(得分:9)
这不是一个无限循环,只是你不是从你打开的文件中读取,而是从标准输入中读取。请尝试使用getc(file)
代替getchar()
。
答案 1 :(得分:3)
它不是在无限循环中,它是从标准输入读取的,可能是终端,因为您使用了getchar()
而不是getc(file)
。
在你回来之前,你也应该fclose(file)
。