【掲示板ご利用上の注意】
※題名は具体的に! ※学校の課題の丸投げ禁止! ※ソースの添付は「HTML変換ツール」で字下げ! ※返信の引用は最小限に! ※環境(OSとコンパイラ)や症状は具体的に詳しく! ※マルチポスト(多重投稿)は謹んで! 詳しくはこちら
本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。 守ってくださいね。お願いします。(by管理人)
C言語ソース⇒HTML形式ツール 掲示板2はこちら
STLを使えば簡単。 #include <string> #include <fstream> using namespace std; int main() { size_t line = 0; ifstream f("cpptest.cpp"); string str; while( !f.eof() ){ getline(f, str); ++line; } f.close(); cout << line << "行" << endl; return 0; }
> while( !f.eof() ){ > getline(f, str); > ++line; > } これだと、結果が 1 多くなりますよ。なぜだか、説明できますか? 次のようにすればよいでしょう。 while (getline(f, str)) line++; さて、行数を数えるだけなら、'\n' を数えれば済むのではないでしょうか? C で書くと、 #include <stdio.h> int main(void) { int c, line = 0; FILE *fp = fopen("file.csv", "r"); if (fp == NULL) return 1; while ((c = getc(fp)) != EOF) if (c == '\n') line++; printf("%d\n", line); return 0; }