• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC++のfopenのファイル名の指定方法について)

VC++のfopenでファイル名を実行時に変更する方法

このQ&Aのポイント
  • VC++のfopenを使用してファイル名を実行時に変更する方法について教えてください。
  • 現在、毎回csvファイルの名前を手動で変更して保存しなければなりませんが、実行時にファイル名を変更する方法を知りたいです。
  • fopenで実行時にファイル名を変更するにはどうすればよいのでしょうか。scanfなどを使用して変更しようとしましたが、うまくいきませんでした。

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

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>そこでその部分を実行時にscanfなどを用いて変更したいと思ったのですがうまくいきません。 どのように記述して、どううまくいきませんでしたか? # できるかできないか?という質問であれば、できるハズですので…書き方が悪いのでしょう。 >fopenでファイル名を実行時(ビルド時)に変更するにはどうすればよいのでしょうか。 コンソールアプリですから、たいていはコマンドラインスイッチで受け取るようにします。 copy コピー元ファイル名 コピー先ファイル名 という指定の仕方はみたことありますよね? int _tmain(int argc, _TCHAR* argv[]) のargv[1]やargv[2]に入ってきます。 またコマンドラインで指定したオプションの個数がargcに入ってきます。 argc、argvを使用した例は簡単に見つかるでしょう。 http://www.geocities.co.jp/SiliconValley-Bay/7437/c/command.html http://www.geocities.jp/ky_webid/c/045.html http://ratan.dyndns.info/MicrosoftVisualC++/filepointa2.html http://wisdom.sakura.ne.jp/programming/c/c32.html などなど。 # 想定する数より少なかったとき…などについて考慮しておくべきでしょう。 # エラー処理サボると吹っ飛ぶかも知れません。

maruokahrk
質問者

お礼

ご回答ありがとうございます。 >どのように記述して、どううまくいきませんでしたか? 最初以下のようにして無理でした。 char a=0; scanf("%s",&a); fp=fopen(a,"r"); Wr5さんの提示してくれたURLを見たところ配列表示で書く必要があるみたいでしたので以下のように書き換えたところ無事プログラムが走りました。 char a[100]={0}; scanf("%s",&a); fp=fopen(a,"r"); ちなみに >コンソールアプリですから、たいていはコマンドラインスイッチで受け取るようにします。 ここから後の文章は正直何をいっているのか理解できませんでしたorz まだまだ勉強不足のようです。 ご教授ありがとうございました。