連番のファイルを何個も開きたい
FILE *ab_1,*ab_2,*ab_3,*ab_4,*ab_5,*ab_6,*ab_7,*ab_8,*ab_9,*ab_10,*ab_11,*ab_12,*ab_13,*ab_14,*ab_15,*ab_16;
ab_1=fopen("1.txt","w");
ab_2=fopen("2.txt","w");
ab_3=fopen("3.txt","w");
ab_4=fopen("4.txt","w");
ab_5=fopen("5.txt","w");
・
・
・
ab_15=fopen("15.txt","w");
ab_16=fopen("16.txt","w");
という作業をfor文で回せるようにしたいのですがどうしたらいいでしょうか?
自分で作ってみたのは
#include<stdio.h>
main()
{
int i;
char buf[256],file_name[256];
for(i=0;i<16;i++){
sprintf(buf,"ab_%d",i);
sprintf(file_name,"%d.txt",i);
FILE *buf;
buf = fopen(file_name,"w");
}
fprintf(ab_1,"test\n");
}
とやってみたのですが、実際にfprintfで出力しようとするとファイルポインタ ab_1 が定義されていません。みたいなエラーが出てしまいます。
sprintfで取った文字をファイルポインタにしようとしてるところがいけないんだとは思うのですが何かいい方法はないでしょうか?
環境はWindowsXP,VC++6です。
お礼
sprintfは初めて知りました。 期待通りのプログラムを書いてやることもできました。 ありがとうございます。