2

C プログラムの引数としてファイル名を指定したいと考えています。fopen以下のような方法ですべての可能な方法を試しました。

fp = fopen(*argv[2], "r");

こちらも使用"*argv[2]"しましたが動作しませんでした。これを正しく使用できるように、どこが間違っているのかを知りたいです。ありがとう!

4

3 に答える 3

4

そのはず

fp = fopen(argv[2], "r");

argv[0]には exe 名 (パス付き) が含まれ、渡す他の引数は から始まることに注意してくださいargv[1]

C でのコマンド ライン引数の使用の詳細については、これを参照してください。

引数として取得している場合、メイン関数char **argvでは、配列の添え字によってargv[1]自動的にchar *、fopen によって引数として期待される に変換されます。

于 2012-05-29T12:29:55.583 に答える
3
fp = fopen(argv[2], "r" ) 

十分です

argv は文字ポインタの配列です。この配列にインデックスを付けると、コマンド ラインで渡した文字列が得られます。追加でさらに逆参照する必要はありません*

于 2012-05-29T12:30:01.640 に答える
1

fopenは、ファイル名の引数として char* を取ります。

FILE *fopen(const char *path, const char *mode);

次のように使用するだけです。

fp = fopen(argv[2], "r"); // if 2nd argument passed is your filename
于 2012-05-29T12:30:21.527 に答える