C言語の質問です。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
sakk

C言語の質問です。

#1

投稿記事 by sakk » 14年前

C言語の質問です。
ファイルの行数を数えるためには、どういう風にプログラミングすればいいでしょうか?

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

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

という問題です。


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

gokei+=x{i};
gokei/N


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

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: C言語の質問です。

#2

投稿記事 by softya(ソフト屋) » 14年前

知恵袋でも同じ質問をされていませんか?
申し訳ないのですが、同時に2ヶ所以上の場所の質問することはマルチポストと言ってマナー違反とされています。
ここのフォーラムルール上、マルチポストは相互リンクして頂けれOKとなっていますので相互リンクをお願いします。
http://dixq.net/board/board.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

sakk

Re: C言語の質問です。

#3

投稿記事 by sakk » 14年前

すいません。
相互リンクということで。
急いでいて見逃していました。
Yahoo知恵袋:http://detail.chiebukuro.yahoo.co.jp/qa ... 1157229131です。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: C言語の質問です。

#4

投稿記事 by softya(ソフト屋) » 14年前

あちらの補足を使ってしまっているんでね。
それだと相互リンクに成らないので、続きをするとしたらあちらが終了してからにさせていただきます。
あちらの方にも、こちらで質問していることを知らせないことには失礼に当たりますので。

その時に、フォーラムルールにあるテンプレートを使って足らないことを書いて頂けると助かります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

box
記事: 2002
登録日時: 14年前

Re: C言語の質問です。

#5

投稿記事 by box » 14年前

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

閉鎖

“C言語何でも質問掲示板” へ戻る