• ベストアンサー

関数のファイル名指定で変数を使用したい

C言語を使ってゲームプログラムを作成中で、ステージを読み込む際にC言語のファイル入出力関数を 使用していて、テキストファイルからデータを読み込みステージを描画しています。 ステージをクリアした時に次のステージに移行する際、変数でステージ番号を 保持しておきファイル名の一番後ろにマップの番号を付ければ良いのでは ないかと思いました。しかしfopen関数で読み込む際に変数をどのように ファイル名として読ませるかが判りません。この方法ではダメなのでしょうか?

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

  • ベストアンサー
  • TT414
  • ベストアンサー率18% (72/384)
回答No.1

下記のようにプログラムで作れます。また外部から名前を読み込むこともできます。 char filename[100]; sprintf(filename."name%d.dat",100); fopen(filename,"r");

Uriaria
質問者

お礼

ありがとうございます!おかげでステージを無事スムーズに移行することができるようになりました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

1例としては sprintf でファイル名を組み立てる.

Uriaria
質問者

お礼

ありがとうございます!sprintfはこのようにして使うのですね

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 関数内、ファイルのstatic変数

    関数内で、static変数を宣言した場合に、その値は保持されると 思いますが、その関数の外からポインタで見る場合にその値は 保証されるのでしょうか? (必ず同じメモリ上に配置されるのでしょうか?) また、関数とファイル内static変数においてスコープ以外に 取り扱いが変わったりするのでしょうか? (配置されるメモリ空間等) よろしくお願い致します。

  • ファイル名を変数で書きこむfwriteの仕方

    fopen( "   ", "w" ); 上記の関数によって書きこむファイル名を変数で設定するにはどうすれば良いですか? 例えばiとjと言う変数があった場合、i_j.csvをファイル名としたいです。(iとjを変数とします。) ご存知の方がいましたら、教えてください。

  • 関数と変数と定数と式をまとめて [C言語]

    はじめまして。私はC言語初心者です。 C言語では、関数の引数や変数への代入や配列の添え字などに、変数や定数や、式や関数の値を利用できるじゃないですか。私は今C言語について勉強したことをファイルにまとめていっているのですが、上記のようなことを説明するたびに「関数と変数と定数と式」と書くと長ったらしくなってしまいます。そこで、これらをまとめていう言葉があったら教えて欲しいのです。 回答よろしくお願いします。

  • 関数の最初の変数有効期限について

    最近C言語を勉強しているのですが変数の有効範囲について教えてください。 ローカルやグローバル変数があるのが分かって関数内の変数も関数内でのみ有効というのも理解したのですが int a( int b ); という関数の最初に書く括弧の中のbと宣言している変数も関数内に含まれているという事で良いのでしょうか?。

  • ファイルの出力先がうまく指定できません。。

    今、ファイルの出力先を変更させたいと思っていて、 調べたところ、fp=fopen("フォルダ名/test.txt","wb") のようにすればよい、というところまでは調べたのですが、 私の場合、ファイル名を、filenameというchar型の変数に入れており、 fp=fopen(filename,"wb")となってます。 これを、fp=fopen("フォルダ名/filename","wb")としてみたのですが、 これではダメでした。 ファイル名の入っている変数はそのまま使いたいのですが、 それでパス指定をする方法ありますでしょうか?

  • グローバル変数のよくない使い方とその改良例

    C言語の勉強をしています。 グローバル変数を多用するのはあまりよくないと聞きました。 どこでいつ書き換えられるのか把握しづらい等々、言われることは理解できるのですが、 では具体的にどうするのがよいのか分からないのです.. 例えば、異なったファイル内の複数の関数から参照したり、書き換えたいような変数が あった場合、ついついグローバル変数を使いたくなってしまうのですが、このような ケースではどのようにするのがよいのでしょうか。 簡単なC言語の具体的な例で教えてください。 よろしくお願いします。

  • フォルダ名のフルパスからファイルポインタ

    C言語の初心者で、なにがなんだかわかりません。 ファイル入出力関数の話ですが、 フォルダ名のフルパスを指定された関数内で ファイルポインタを指定して他関数を使用します。 そもそもフォルダ名のフルパスからファイルポインタを 得ることができるのでしょうか?

  • C/C++言語で変数名から変数のアドレスを取得する

    C/C++言語で変数名から変数のアドレスを取得する方法があれば、ご教示願います。 例えばですが、関数GetProcAddress()は、関数の文字列からエクスポート済みの関数のアドレスを戻り値で返しています。 GetProcAddress()と同じようにアドレスを取得したい変数名の文字列を渡して、変数のアドレスを取得したいです。 よろしくお願いします。

  • C言語、fgetcを利用しファイルの内容を変数に

    C言語について質問です C言語のfgetcを利用しファイルの内容を変数にいれてそれを返す関数を作っているのですがうまくいきません <!--以下ソース--> char *file_get_contents(char *filename){ FILE *fp; int c; char *return_str; if((fp=fopen(filename,"r"))==NULL) return NULL; while((c=fgetc(fp))!=EOF ){ sprintf(return_str,"%c",c); } fclose(fp); return return_str; } 誰か理由と改善方法を教えてください!

  • VB6で、変数の値を別ファイルの変数に引き継ぎたい

    AというVBのソースファイル(.frm)内に関数の呼び元があり、 その関数がBというファイルにあります。 その関数内で値が設定される変数を、Bファイルのグローバル変数とし、 また、Aファイルのグローバル変数として同じ名前の変数を宣言したとしても、 やはりB内で関数の実行が終了し、Aに戻った際には、変数は別のものとみなされている ようで、B内関数で設定された値がAファイル内での同名変数に引き継がれません。 どのようにすればよろしいでしょうか? ご存知の方、お願いします。