- ベストアンサー
C言語 コンソール VC6.0で
テキストファイルをfopenで読み込んだ後、 そのテキストが「何行で構成されているか」を知りたいのですが、 どうすればよいでしょうか? 改行の数を数える=何行かということだと思うのですが、 なかなかうまくいきません。よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
fgets()を利用して調べてみてはどうでしょう ---------------------------------------------------------------- char buf[256]; int count = 0; while( fgets( buf, sizeof(buf)-1, fp ) != NULL ) count++; ---------------------------------------------------------------- fgets()は改行がくるまで読み込む関数ですので、 読み取れなくなるまで呼び出せば、それが行数となります。 ※このプログラムは1行が最大255文字のテキストしか保障していません
その他の回答 (4)
サンプルを示せば、こんな感じですね。 下記のサンプルは、見易くするため漢字を入れました。 /* ファイルの改行数取得 */ int sample(char *path) { FILE *fp; int cnt=0, ch; if ((fp = fopen(path, "rt")) == NULL) return (cnt); while ((ch = fgetc(fp)) != EOF) { if (ch == '\n') cnt++; } fclose(fp); return (cnt); }
- tekuteku123
- ベストアンサー率21% (5/23)
ソースコードを提示してはどうでしょうか?
- jacta
- ベストアンサー率26% (845/3158)
> 改行の数を数える=何行かということだと思うのですが、 それで問題ありません。 > なかなかうまくいきません。 どううまくいかなかったのでしょうか?
- php504
- ベストアンサー率42% (926/2160)
読み込んだ後じゃなくて読み込むときに1行づつ読み込んでカウントするのはどうでしょうか。