ページ 11

C言語の質問です。

Posted: 2011年3月09日(水) 15:37
by sakk
C言語の質問です。
ファイルの行数を数えるためには、どういう風にプログラミングすればいいでしょうか?

テキスト形式のファイル(data.txt)に
浮動小数点値(改行)
・・・・
・・・
・・

のように複数のデータXiが記録されている。ファイルを読み込む前にはデータ数Nがわからないとして(すなわち格納するメモリは動的に確保するとして)、これらの数値のデータ数乗の平均表示するプログラムを書きなさい

という問題です。


方針としては、
ファイルを二度開くとし、
1回目が行数を数えてそのあと、メモリを動的に確保して、そのメモリにファイルの数を代入して

gokei+=x{i};
gokei/N


です。
その行数を数えるプログラミングがわかりません。
よろしくお願いします。

while(fgets(a,255,fp))!=NULL)
上のように255というのは、ファイルの行数が例えば255行あるとわかってないと使えないですよね?
行数が開いてみないとわからない場合には、どういうふうにしたらいいんでしょうか・・・?

Re: C言語の質問です。

Posted: 2011年3月09日(水) 15:55
by softya(ソフト屋)
知恵袋でも同じ質問をされていませんか?
申し訳ないのですが、同時に2ヶ所以上の場所の質問することはマルチポストと言ってマナー違反とされています。
ここのフォーラムルール上、マルチポストは相互リンクして頂けれOKとなっていますので相互リンクをお願いします。
http://dixq.net/board/board.html

Re: C言語の質問です。

Posted: 2011年3月09日(水) 16:02
by sakk
すいません。
相互リンクということで。
急いでいて見逃していました。
Yahoo知恵袋:http://detail.chiebukuro.yahoo.co.jp/qa ... 1157229131です。

Re: C言語の質問です。

Posted: 2011年3月09日(水) 16:09
by softya(ソフト屋)
あちらの補足を使ってしまっているんでね。
それだと相互リンクに成らないので、続きをするとしたらあちらが終了してからにさせていただきます。
あちらの方にも、こちらで質問していることを知らせないことには失礼に当たりますので。

その時に、フォーラムルールにあるテンプレートを使って足らないことを書いて頂けると助かります。

Re: C言語の質問です。

Posted: 2011年3月09日(水) 22:38
by box
sakk さんが書きました: ファイルの行数を数えるためには、どういう風にプログラミングすればいいでしょうか?
テキストファイルであれば、「1文字ずつ読んで、改行コードの数を数える」っていうような安直な方法があります。
sakk さんが書きました: while(fgets(a,255,fp))!=NULL)
上のように255というのは、ファイルの行数が例えば255行あるとわかってないと使えないですよね?
違います。
fgets()の第2引数はファイルの行数ではなく、ザックリいうと「1行の最大文字数」です。