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 に答える