プロが教えるわが家の防犯対策術!

C言語でのファイル読み込みに関してお尋ねしたいことがございます。

たとえば、「test1.dat」というような数字が複数行記載されたデータファイルがあり、
それを配列に読み込んで作業をしたのちに、
同じ作業を「test2.dat」「test3.dat」・・・というようなデータファイル
(これらも、test1とは異なる数字が複数行記載されたデータファイル)にも
施したい場合、どのようなループ処理をすればよいのでしょうか?
perlの場合ですと比較的簡単にできたのですが、
Cの場合はどうしたらいいかわかりません。

どうぞよろしくお願いいたします。

A 回答 (2件)

FILE *f;


int i;
char filename[100];
for(i=1;i<10;i++){
sprintf(filename,"test%d.dat",i);
f=fopen(filename,"r");
;
;
;
fclose(f);
}
    • good
    • 2
この回答へのお礼

できました!
大変助かりました、ありがとうございました!!

お礼日時:2012/01/13 18:29

perlを知らないのでうまく説明できるかわかりませんが、


参考になれば。

for()のループの中にファイルオープンからすべての作業を行う様に
処理を記述すればいいのではないでしょうか?

アクセスするファイルが質問の様に法則性があり数字で連番になっているというのであれば、
アクセスするファイルのフルパスファイル名を文字列変数(Cの場合はchar型配列)に持ち
その変数を用いてループ内でファイルオープン~データ読み込み&配列保持~ファイルクローズを行い、
保持した配列を用いて作業を行って、終了したら次のループへ進む様にすればできると思います。

同時に複数のファイルをオープンする必要がないのであれば
ファイルオープン時に使用するファイル番号も一つですみますし。

ただこの場合、ループ内で使用している変数の初期化が要注意ですので、
この点に注意してプログラムを組んでみたらいかがでしょうか?
    • good
    • 0
この回答へのお礼

勉強になりました、ご丁寧にありがとうございました!

お礼日時:2012/01/13 18:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!