• ベストアンサー

MS Visual C++で、Cのargv[]の使い方?

以前「既存のCプログラムをMS Visual C++へ移行して実行したい 」という 質問をした者です。 既存のCプログラムをビルドするところまではいきました。 ****(.exe) inputfile outputfile というふうにプログラムを実行させたいのですが、 VC++の「実行」ボタンでは入出力ファイルを指定するところが わかりません。 (「実行」ボタンを押すと、DOS窓が開いて、「inputfile outputfile」 を入力する暇も無くエラーになって終了します) MS固有の関数はできるだけプログラムに入れたくないのです。 ソフト(VC++)の設定で入出力ファイルを指定する方法を 教えてください。

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

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.4

デバッグ中のプログラムの作業ディレクトリは実行ファイル(Debugフォルダ)では無くプロジェクトフォルダ(Debugフォルダの1階層上)に設定されるはずです。 以下、老婆心(っていうか仕様を変えてしまうだかダメ?)ですが… 私ならargcの値を元に case 1:inputfile,outputfileともに入力 case 2:outputファイルのみ入力、inputfileはargv[1] case 3:outputはargv[2]、inputfileはargv[1] と、キーボードから入力するように書き換えます。

oddo
質問者

お礼

toysmithさん、回答ありがとうございました。 お礼が遅くなってすみません。 >以下、老婆心(っていうか仕様を変えてしまうだかダメ?)ですが… >私ならargcの値を元に >case 1:inputfile,outputfileともに入力 >case 2:outputファイルのみ入力、inputfileはargv[1] >case 3:outputはargv[2]、inputfileはargv[1] >と、キーボードから入力するように書き換えます。 そういった方法もあるんですね! C言語で書いてあれば、入出力のところは変更されてもかまわないので、 考えてみます。 ありがとうございました。

その他の回答 (3)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.3

> 入力ファイルは、exeファイルと同じところに置いているの > ですが、なにか問題があるのでしょうか? > (場所を指定しないといけないのでしょうか??) デバッグ実行時のディレクトリは特に指定しなければ、実行形式ファイルを 作成したところだったような記憶があるのですが、記憶違いかもしれません (^^; 引数を設定したところで、 ・「作業用のディレクトリ」に、inputfile が置いてあるところを記述する ・inputfile をフルパスで記述する のどちらかをしてください。

oddo
質問者

お礼

a-kumaさん、いつもありがとうございます。 お礼が遅くなってすみません。 「作業用のディレクトリ」に、inputfile が置いてあるところを記述する これを試したところ、実行できました。 いまは新たな問題にぶつかってます(^^; また何かありましたら、よろしくおねがいします。

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

プロジェクトの設定ダイアログに「デバッグ」というタブがあるはずです。 そこに「プログラムの引数」という入力フィールドがあるので、そこに引数 (質問の例だと .exe より後の inputfile outputfile)を記述してください。 # VC4.2 の知識を元に書いているので、多少名前が違うかもしれません

oddo
質問者

お礼

a-kumaさん、またまた早速の回答ありがとうございました。 VC++6.0も同じ名前で、同じ場所に入力フィールドがありました。 これで実行してみます!

oddo
質問者

補足

すみません、実行してみたのですが、 fopen()の返り値がNULLでエラーになってしまいました。 入力ファイルは、exeファイルと同じところに置いているの ですが、なにか問題があるのでしょうか? (場所を指定しないといけないのでしょうか??) ちなみに入力ファイルはバイナリで、これもなにか問題があるのでしょうか? (fopenのモードは「rb」にしています)

  • mrt136
  • ベストアンサー率35% (33/92)
回答No.1

Visual C++ から離れて6年ぐらい経つので、ぜんぜん外しているかも知れませんが、 プロジェクトの設定等に「コマンドライン引数」とか言う項目はありませんか? 今、手元にVC++ が無いので、確認は出来ませんが。。。 とりあえず、他の人の回答を待ってみましょう。。。

oddo
質問者

お礼

mrt136さん、早速の回答ありがとうございました。 No.2のa-kumaさんの言うとおり、 プロジェクトの設定の、「デバッグ」というところに 「プログラムの引数」というフィールドがありました。 これから実行してみます。