こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

連続でファイル作成

連続でファイル作成
最終的にパラパラアニメの要領でアニメーションを作ろうと考えています。
そこで、C言語でfor文を使ってたくさんのファイルを作成することを考えました。
そこで質問なのですが、ファイル名を少しずつ変える方法はどうしたらいいのでしょうか?
最初、for文中に
fd = fopen("test%d.txt",i,"w");
と書いてみたのですが、『too many arguments to function ‘fopen’』とエラーが出ました。
(もちろん整数iはi++でfor文中に入れてあります。つまり、test1,test2,...,test10のようなテキストファイルを作成したかったという意味です。)

C言語を始めたばかりなのでとても初歩的な質問かと思いますが、わかる方どうぞよろしくお願いいたします。

投稿日時 - 2010-09-06 21:59:10

QNo.6163731

すぐに回答ほしいです

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

例えば

char file[1024];
:
sprintf(file, "test%d.txt", i);
fd = fopen(file, "w");
:
のようになります。

投稿日時 - 2010-09-06 22:12:15

お礼

どうもありがとうございます。
回答いただいたとおり
char file[1024]
を用意して、無事成功しました☆

投稿日時 - 2010-09-07 15:48:35

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

こんな感じですね。

int i;
char filename[100];
FILE *fp;

for(i=0;i<100;i++){
snprintf(filename,sizeof filename,"test%d.txt",i);
if((fp = fopen(filename,"w"))!=NULL){
fclose(fp);
}else{
fprintf(stderr,"open error (%s)\n",filename);
}
}

投稿日時 - 2010-09-06 22:17:02

お礼

とてもご丁寧にどうもありがとうございました!!
snprintf()を始めて知りました。
今後さらに勉強していきたいと思います。

投稿日時 - 2010-09-07 15:49:52