ファイルのデータを読み込んで配列に格納する方法

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

ファイルのデータを読み込んで配列に格納する方法

#1

投稿記事 by 774 » 15年前

タイトルの通りですが,例えば

1 10.2
2 9.87
3 21.34
4 15.4
.
.
.
.

といったようなデータがあったとします.

そのときこの例で言えば2列目の要素だけを読み込んで配列に格納したい場合,
どのようにすればいいのでしょうか?

コンパイラはgccを使っています.

パコネコ

Re:ファイルのデータを読み込んで配列に格納する方法

#2

投稿記事 by パコネコ » 15年前

gccを知らないので使えなかったらごめんなさい。
私はデータを読み込むときに、番号がついてるなら。
do{
fscanf(fp,"%d %f",a,deta);
}while(a!=serect);
hairetu[a]=deta;//[a]?自分で入れたいところに書き換えて…
みたいな感じでほしいデータがロードできるまでループさせてます。

目的以外の場所も読み込んでいるので、やりたいことと違ったら申し訳ないです。
gccがfscanfじゃなかったらもっとすいません。

シエル

Re:ファイルのデータを読み込んで配列に格納する方法

#3

投稿記事 by シエル » 15年前

2列目でいいんですか?2行目の間違いではなくて?

パコネコ

Re:ファイルのデータを読み込んで配列に格納する方法

#4

投稿記事 by パコネコ » 15年前

あれミスったかもしれません。
2列目をって書いてますね。
間違いの可能性もありますが…あってる可能性も高いので。
do{
fscanf(fp,"%d",a);
if(a!=100)
//[a]を[a-1]にしたりすることも…
fscanf(fp,"%f",hairetu[a]);
}while(a!=100);
//ファイルの終わりに100と、書いておく必要があります。
aは使い捨てで読み捨ててます。

fscanfが使えなければ結局無駄ですが…
これではだめでしょうか…
=============
すいません…「&a」および「&hairetu[a]」の間違いな気がします…


画像

たかぎ

Re:ファイルのデータを読み込んで配列に格納する方法

#5

投稿記事 by たかぎ » 15年前

組込みとかでなければfscanfが使えない状況というのはまずあり得ないので...

double value;
fscanf(stream, "%*[0-9]%f", &value);

として読み込み、配列に格納するだけです。
ただし、間違ったデータの入力にも対応するには、もっと別の方法が必要になります。

閉鎖

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