• ベストアンサー

コマンドラインのオプションのライブラリで、簡単・便利に使えるものは?

コマンドラインのオプションがありますよね。 たとえば ls -a /usr で "-a" など。 C言語だと、argv, argc と switch 文などを駆使すると思うのですが、よくつかうわりに、結構面倒です。 オプションを簡単に扱うことができる: ・(ANSI) C のライブラリ ・C++ のクラスライブラリ はないでしょうか?できれば使用感など教えていただけると幸いです。

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

  • ベストアンサー
回答No.2

> VC++ のMSDNライブラリを検索しても getopt で適当なものが引っかからなかったのですが、getopt はVC++で使えるのでしょうか? 使えます/した。

newtonZ
質問者

お礼

ありがとうございます。

その他の回答 (1)

  • yoneda_16
  • ベストアンサー率47% (166/350)
回答No.1

getopt

newtonZ
質問者

お礼

ありがとうございます。 説明不足だったのですが、Windows Visual C++ と Unix の gnu g++ など環境依存なしで使いたいと思っています。 VC++ のMSDNライブラリを検索しても getopt で適当なものが引っかからなかったのですが、getopt はVC++で使えるのでしょうか?

関連するQ&A

  • コマンドとコマンドラインとコマンドラインオプションの違いを教えてください。

    ただ今Cの関数を勉強しているのですが、勉強用HPに ************************ int main(int argc, char *argv[ ]) 戻り値:int型、引数:argc, argv 後者は、コマンドライン オプションを受け付ける。 argc はオプションの数、argv はオプションの内容となる。 ************************ とあります。 そこで質問なのですが、コマンドラインオプションとは何ですか? また、 ・コマンド ・コマンドライン ・コマンドラインオプション の違い、それぞれの意味も教えてください。 マックのコマンド+s、コマンド+vみたいなものですか? それともunixのcdや./のようなものでしょうか。 わからない単語が出てくると、 そこで頭が混乱してしまい先に進めない性質なので困っています。 どうぞご教授よろしくお願いします。

  • コマンドラインオプションを取得する楽な方法

    コマンドラインオプションを取得する楽な方法はないでしょうか? 例えば便利なクラスライブラリとか。 たとえば、原始的な方法としては java StatisticData -gender female -age 20 からオプションの値を取得しようとすると for (int i=0; i < argv.length; i++) {  if (argv[i] == "-gender" ){   gender = argv[i+1];  }  ・・・  if (argc == 0) {   System.out.println("usage ・・・");  } のような感じだと思うのですが、よく使うので、クラスライブラリとかないのかなと思いました。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • C言語 コマンドラインの文字列を調べる方法

    はじめまして。 C言語を学習しています。 PCのOSはWindows XPです。 参考書に、アプリケーションの動作を指定するオプションを指定する方法として、下記の説明とプログラムが載っています。 以下の点でつまづいており、ご教示をお願い致します。 1、プログラム実行結果画面(コマンドプロンプトのような黒い画面。スクリーンショットを添付しております。)に【-a】と入力しようとしましたが、テンキーの【-】を押した時点で画面が消えてしまいます。 どのように操作すれば、参考書のような実行結果が得られるのでしょうか。 2、【argc--;】の部分で、ここでなぜデクリメントを使うのでしょうか。 3、argvは文字配列へのポインタ変数とのことですが、if文のところの【argv[argc][0]】が何を意味しているのか教えてください。 argv[配列の要素]のような書き方ではなく、argvの横に[]が2つある時点で混乱してしまいます。 どうかよろしくお願い致します。 ●参考書による説明 一般的に、コマンドラインにはファイル名の他に、アプリケーションの動作を指定するオプションを指定することがあります。 例えば、Windowsでファイル名を指定して実行で defrag と指定して起動すると、デフラグが起動して何もせずに終了しますが、 defrag c: と指定すると、Cドライブのデフラグを開始します。 また、defrag c: -a と指定すると、Cドライブの分析結果だけを表示します。 このような使い方は、パソコン上級者にはおなじみのやり方です。 この例では、 c: と -a という2つの文字列がコマンドラインに渡され、それをアプリケーション内で解析して、動作を決定しています。 同様のことは、コマンドラインの文字列を調べれば簡単にわかります。 ここでは、-a と -s というオプションの有無を解析する例です。 ●プログラム #include <stdio.h> int main(int argc,char *argv[]) { while (argc > 0) { argc--; if (argv[argc][0] == '-') { if (argv[argc][1] == 'a') printf("-a オプション\n"); if (argv[argc][1] == 's') printf("-s オプション\n"); } } return 0; } このプログラムに -a -s というオプションを与えて実行した結果は次の通りです。 -a オプション -s オプション 同様にすれば、いくつのオプションにでも対応することができます。 また、先頭が - ではない文字列をファイル名として扱うようにすれば、 ファイル名も前項と同様に取得することができます。

  • コマンドプロンプトを使用してのコマンドライン引数

    winXPのコマンドプロンプトを利用して 参考書「独習C」を使い、C言語の学習をしています。 その本の7.4の項目~main()の引数~で main(int argc,char *avgv[])を利用すると コマンドラインから引数をとることができるとありますが 私の学習環境ではうまくいきません。 具体的には #include <stdio.h> int main(int argc, char *argv[]) { int i; for(i=1; i<argc; i++) printf("%s ", argv[i]); return 0; } というプログラムを実行しても何も表示されません。 どうすればコマンドライン引数を利用できますか?

  • コマンドライン引数 *argv[]はなぜポインタ?

    C言語初心者です。 コマンドライン引数、 int main(int argc, char *argv[]) というのを最近勉強しましたが、引数2番目がポインタになっている理由について、 どなたか教えて下さい。 そういう仕様なんだから、それに従いましょう、ということでしょうか? int main(int argc, char argv[]) では、ダメなのでしょうか? このポインタでの引数渡しについて、 なんらかの納得のいく考え方をご存知の方がいらしたら、教えて下さい。 宜しくお願い致します。

  • コマンドラインのオプションの読み取り

    C++で、引数に/オプションで処理ごとに実行するプログラムを書きたいのですが、具体的にmain関数でどう書けばよいのでしょうか? スマートの方法が知りたいです。 sample.exe /test=1 aの関数を実行 sample.exe /test=2 bの関数を実行 sample.exe /test=3 cの関数を実行 int main(int argc, char**argv) { ... ここの処理? } void a(){ print "A\n"; } void b(){ print "B\n"; } void c(){ print "C\n"; }

  • コマンドライン引数

    コマンドライン引数で以下のようなプログラムを実行したいのですが どうしたらいいのか分かりません!! みなさんの意見を聞かせてください(lll´Д`lll)    □☆□□□☆□□□☆□□□☆□    ☆★☆☆☆★☆☆☆★☆☆☆★☆    □☆□□□☆□□□☆□□□☆□    □☆□□□☆□□□☆□□□☆□    ☆★☆☆☆★☆☆☆★☆☆☆★☆    □☆□□□☆□□□☆□□□☆□    □☆□□□☆□□□☆□□□☆□    ☆★☆☆☆★☆☆☆★☆☆☆★☆    □☆□□□☆□□□☆□□□☆□    □☆□□□☆□□□☆□□□☆□ プログラムは途中まで作ったのですが、肝心なとこは 全く分りませんっっ #include <stdio.h> int main(int argc, char *argv[]) { int yoko, tate, i, j; if( argc < 3 ) return(1); sscanf( argv[1], "%d", &yoko ); sscanf( argv[2], "%d", &tate ); for( j = 0; j < tate; j++ ) { printf("\n"); } return(0); } /* end of pat2.c */

  • Cocoa をコマンドラインから実行して引数を受け取りたい

    C・Objective-C に関して全くの初心者ですが、よろしくお願いします。 Cocoa で作ったアプリをコマンドラインから実行して、渡した引数を NSObject のサブクラスで受け取りたいのですがどうしたらよいでしょうか。 main.m の main 関数で受け取る方法はわかったのですが、サブクラス MyObject.m 内の任意のメソッドに渡す方法がわかりません。 // 引数を受け取って表示する int main(int argc, char *argv[]) {   fprintf(stdout, "%s\n", argv[1]);   return NSApplicationMain(argc, (const char **) argv); } ご教示いただけますと幸いです。

  • コマンドラインに入力されている文字列の1文字を出力

    ○下記のコードについての質問になります #include <stdio.h> int main( int argc, /*コマンドライン引数*/ char *argv[] /*コマンドライン */ ) { int counter; /*ループカウンタ*/ for( counter = 0 ; counter < argc ; counter++) { printf( "argv[%d]:%s\n" , counter , argv[counter] ); } /*----------------------------------------------------------- printf( "コマンドラインの1文字を抜き取る:%c" , ????????); ------------------------------------------------------------*/ return (0); } ○質問 コマンドラインのプログラムになります。 「--」で囲っている部分になりますが、 コマンドラインに入力されている文字列の1文字だけを出力できるように したいのですが、どうすればこれを実現することができるのでしょうか?? 一例として >command.exe orange ringe ^^^^^^ と、コマンドを打ったときに、「^^」の部分になりますが、 orangeの「a」だけを出力させたい場合を、知りたいと思っております。 以上、宜しくお願いします。

  • この(C言語)ダブルポインタのアルゴリズムを教えて!

    main(int argc, char *argv[]) while(--argc > 0) { if(**(++agv) == '-') { switch(argv[0][1]){ case 'a'; オプションaに対する処理; break; case 'b'; オプションbに対する処理; break; case 'c'; オプションcに対する処理; break; default;; abc 以外のオプションが入力された時の処理; } } else break; } オプション以外のパラメータが入力されたときの処理; 特に ’**’の部分や argv[0][1]の意味が解かりません。 よろしくお願い致します。

専門家に質問してみよう