1

Turbo C++ のコマンド ラインから整数値を渡すことができません。私を助けてください。

4

5 に答える 5

10

引数を実行可能ファイルに文字列としてのみ渡すことができます。std::atoi文字列を整数に変換するために使用できます。

int main(int argc, const char* argv[])
{
  if ( argc > 1 ) {
    int i = atoi( argv[1] );
  }

  return 0;
}
于 2009-09-08T17:35:45.880 に答える
6

文字列として渡し、atoior などで解析する必要がありstrtolます。

コマンドライン引数は常に文字列です(またはchar*、うるさい場合は s :)

于 2009-09-08T16:58:00.090 に答える
6

コマンド ラインから整数を渡すことはできません。文字列のみを渡します。数値を渡し、::atoi(または他の変換関数)を使用して整数に変換します

于 2009-09-08T16:58:23.257 に答える
1

なぜあなたがまだ古いコンパイラに固執しているのか、本当に不思議です! 最新のコンパイラに切り替えるのは早ければ早いほどよいのです! とにかく、それを行うためのコードは以下のとおりです。

#include<stdlib.h>
#include<iostream.h>
int main(int lenArgs, char *args[]){
    int num = 0;
    if (lenArgs > 1){
        num = atoi(args[1]);
    }
    else{
        cout<<"Please give an argument to the program!";
        return 1;
    }
    cout<<num<<endl;
    return 0;
}
于 2009-12-26T08:52:47.277 に答える
0

これを 1 回だけ渡す場合で、メイン関数に指定できるパラメーターを維持する必要がない場合はchar*、C++ ランタイムがプログラムに提供するパラメーターを を使用して変換できますint i = atoi( argv[1] )

より多くのパラメーターを使用する場合は、それらに名前を付ける方法も必要になるでしょう。次に、関数を見てみる価値がありgetoptます。これにより、より柔軟なコマンド ライン パラメータが可能になります。

タイプチェックとロットを可能にするコマンドライン解析フレームワークさえあります。

于 2009-09-08T17:27:46.927 に答える