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

解決済みの質問

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

以前「既存のCプログラムをMS Visual C++へ移行して実行したい 」という
質問をした者です。

既存のCプログラムをビルドするところまではいきました。
****(.exe) inputfile outputfile
というふうにプログラムを実行させたいのですが、
VC++の「実行」ボタンでは入出力ファイルを指定するところが
わかりません。
(「実行」ボタンを押すと、DOS窓が開いて、「inputfile outputfile」
を入力する暇も無くエラーになって終了します)

MS固有の関数はできるだけプログラムに入れたくないのです。
ソフト(VC++)の設定で入出力ファイルを指定する方法を
教えてください。

投稿日時 - 2002-04-03 16:14:13

QNo.246319

すぐに回答ほしいです

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

デバッグ中のプログラムの作業ディレクトリは実行ファイル(Debugフォルダ)では無くプロジェクトフォルダ(Debugフォルダの1階層上)に設定されるはずです。

以下、老婆心(っていうか仕様を変えてしまうだかダメ?)ですが…
私ならargcの値を元に
case 1:inputfile,outputfileともに入力
case 2:outputファイルのみ入力、inputfileはargv[1]
case 3:outputはargv[2]、inputfileはargv[1]
と、キーボードから入力するように書き換えます。

投稿日時 - 2002-04-04 00:52:13

お礼

toysmithさん、回答ありがとうございました。
お礼が遅くなってすみません。

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

投稿日時 - 2002-04-05 10:25:41

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

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

回答(4)

ANo.3

> 入力ファイルは、exeファイルと同じところに置いているの
> ですが、なにか問題があるのでしょうか?
> (場所を指定しないといけないのでしょうか??)

デバッグ実行時のディレクトリは特に指定しなければ、実行形式ファイルを
作成したところだったような記憶があるのですが、記憶違いかもしれません (^^;

引数を設定したところで、

・「作業用のディレクトリ」に、inputfile が置いてあるところを記述する
・inputfile をフルパスで記述する

のどちらかをしてください。

投稿日時 - 2002-04-03 17:14:00

お礼

a-kumaさん、いつもありがとうございます。
お礼が遅くなってすみません。

「作業用のディレクトリ」に、inputfile が置いてあるところを記述する

これを試したところ、実行できました。
いまは新たな問題にぶつかってます(^^;

また何かありましたら、よろしくおねがいします。

投稿日時 - 2002-04-05 10:21:53

ANo.2

プロジェクトの設定ダイアログに「デバッグ」というタブがあるはずです。

そこに「プログラムの引数」という入力フィールドがあるので、そこに引数
(質問の例だと .exe より後の inputfile outputfile)を記述してください。

# VC4.2 の知識を元に書いているので、多少名前が違うかもしれません

投稿日時 - 2002-04-03 16:37:06

補足

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

投稿日時 - 2002-04-03 16:53:18

お礼

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

これで実行してみます!

投稿日時 - 2002-04-03 16:51:15

ANo.1

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

とりあえず、他の人の回答を待ってみましょう。。。

投稿日時 - 2002-04-03 16:29:12

お礼

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

投稿日時 - 2002-04-03 16:53:04

あなたにオススメの質問