2012-01-27 12 views
1

コマンドラインに「./a.out 3」と言ったような番号を入力するつもりです。ここで、3は検索しようとしている番号です。私の例では、私が出力しようとしている2つの数字が同じではなく、コマンドライン引数から情報を抽出する最も実用的な方法は何ですか?おかげコマンドライン引数を使用するC++

int main(int argc, char* argv[]){ 


    char* openSpace = argv[1]; 
    int temp = *openSpace; 

    cout<<*openSpace<<" is the open spot!"<<endl; 
    cout<<temp<<" is the open spot!"<<endl; 

    return 0; 
} 

答えて

8

argv[1]char*であり、あなたがintをしたいです。残念ながら、変数のタイプを変更することはできません。代わりにchar*intに変換する必要があります。これにはatoi()関数を使用します。

int temp = atoi(argv[1]); 
+1

ブーストのlexical_castもご覧ください。 –

2

あなたはどういう意味ですか?確かに彼らはあります!最初の文字は文字 '3'を文字として出力し、2番目の文字は整数として出力します。つまり、文字 '3'のASCII値が得られます。あなたはint temp = *openSpace;のような割り当てを使用して文字列を整数に変換することはできません

あなたはそれをあなたがatoi()strtol()boost::lexical_cast<int>()のようなものを使用することができ、整数値を取得したい場合など

+0

'std :: stoi'を忘れないでください。 –

1

。標準のCライブラリからatoi()のような関数を呼び出す必要があります。

関連する問題