- ベストアンサー
テキストファイルの行数を取得する方法(C言語
yama5140の回答
>C言語でテキストファイルのトータル行数を取得する関数又はその方法を教えてほしいのですが。 3つ前の質問 http://okwave.jp/qa5129642.html 質問文中のソース冒頭 line2++; 部分(下に修正したもの掲載)で、 ・テキストファイルの行数を、ファイルの頭から1行ずつ「読み捨て」て、それをファイル終端まで繰り返すことで数えています。 ここでは、「全体として、どの位メモリを確保したらいいか」という動機から、超みっともない?こと(読み捨て、1ファイルを2度オープン)をしています。 (本人には、http://okwave.jp/qa5114580.html の No.3 で指摘済み) 1行ずつ読み込みながら、1行分のメモリを追加確保していくのが普通だと思うのですが・・。 ・エディタでファイルを開けば判ることを、わざわさプログラムにする理由はなく、(質問文には現れない)主目的との「兼ね合い」でご質問された、と思います。 ・「何々したいから、プログラムの冒頭で、ファイルのトータル行数を取得しておきたい」の「何々」部分を明らかにすれば、「兼ね合い」を解消する技法について「回答」が得られるかもしれません。 もし、上の質問者様と同様な動機でしたら、少なくとも、「エディタでファイルを開き、行数を確認」し、プログラム実行時にコマンドラインで、argv[ 2 ] に行数が入るようにして下さい。 超みっともない「読み捨て、1ファイルを2度オープン」は不要となります。 プログラムでは、line2 = atoi( argv[ 2 ] ); とすることで、行数を得ることができます(ファイル名は、argv[ 1 ] で) ---------------------------------------------- 直球回答 int line2 = 0; char buf[ 1024 ]; // 最大レコード長より大きいこと FILE *fp; if( NULL == ( fp = fopen( argv[ 1 ], "r" ) ) ){ printf( "%s が開けません\n", argv[ 1 ] ); return( -1 ); } while( NULL != fgets( buf, 1024, fp ) ){ line2++; } fclose( fp );
関連するQ&A
- C言語の関数について困っています
こんにちは。 C言語で、テキストファイルの行数を数える関数があれば教えて頂けないでしょうか。例えば、以下の3行を含んでいるテキストファイルを対象としたとすれば 123465789123456789 1234567981234579 987654321987654321 関数を実行すれば、3という数字が得られ、 123456 789 123546879 123 123 456789123 123456789123 というテキストファイルであれば、4という数字が得られる。そんな関数をご存知な方は私にご教授願えないでしょうか。どうぞよろしくお願いします。
- 締切済み
- C・C++・C#
- C言語での、テキストファイル読み込みについて
30行×30列の数字が記載されてテキストファイルがあり、 それをC言語で例えばA[ ][ ]といった配列に読み込みたいのですが、 どうすればよいでしょうか? fscanf関数を用いればできないことはないと思うのですが、 30個も書かなければならないのは冗長なので・・・。 なにかよい方法はありますでしょうか?
- ベストアンサー
- C・C++・C#
- C言語につて、教えてください!!
C言語について教えてください テキストファイル CD_DATA|45 DVD_DATA|601 MD_DATA|24 メイン関数と読み込み関数で、テキストファイルの'|'より後ろを構造体に書き込み エラー処理でテキストファイルに'|'が無い時エラーメッセージをだす。 テキストファイルの中の行数が違った時エラーメッセージをだす。 以上です、教えてくださいお願いします。
- ベストアンサー
- C・C++・C#
- C言語のテキストファイルの読込み
必要に迫られてC言語でテキストファイルの読込みを行う プログラムを作成しなければならなくなりました。 whileとfscanfを用いて書式を指定して一行ずつ読込むことができる ということは知っていますが、その際、たとえば読み込むファイルが 20行のテキストファイルだったとして、10行目から読込みを 行いたい場合はどのようにプログラムを書けばいいのでしょうか? なにぶんC言語初心者ですのでよろしくお願いします。
- ベストアンサー
- C・C++・C#
- c# テキストファイル操作について
C#でテキストファイルを読み込み、そのテキストファイルの行数を数えるようにしたいのですが・・・。 テキストファイルを読み込むことができたんですが、行を数えることができません。どなたか、教えていただけませんか?よろしくお願いします。
- ベストアンサー
- C・C++・C#
- ファイルの行数を取得するにはどうしたらいいですか??
PHP4でfopenで開いたファイルの行数を取得するにはどうしたらいいですか?? 教えてください。 宜しくお願いいたします
- ベストアンサー
- PHP