• ベストアンサー

C言語でのファイル読み込み

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

質問者が選んだベストアンサー

  • ベストアンサー
  • TT414
  • ベストアンサー率18% (72/384)
回答No.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); }

ramusi
質問者

お礼

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

その他の回答 (1)

回答No.1

perlを知らないのでうまく説明できるかわかりませんが、 参考になれば。 for()のループの中にファイルオープンからすべての作業を行う様に 処理を記述すればいいのではないでしょうか? アクセスするファイルが質問の様に法則性があり数字で連番になっているというのであれば、 アクセスするファイルのフルパスファイル名を文字列変数(Cの場合はchar型配列)に持ち その変数を用いてループ内でファイルオープン~データ読み込み&配列保持~ファイルクローズを行い、 保持した配列を用いて作業を行って、終了したら次のループへ進む様にすればできると思います。 同時に複数のファイルをオープンする必要がないのであれば ファイルオープン時に使用するファイル番号も一つですみますし。 ただこの場合、ループ内で使用している変数の初期化が要注意ですので、 この点に注意してプログラムを組んでみたらいかがでしょうか?

ramusi
質問者

お礼

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

関連するQ&A