3

これが私の元のコードでした:

#include <iostream>

using namespace std;

int main ()
{
    float x;  
    cout << "Please enter an integer value: ";
    cin >> x;

    if ((x >= 100) && (x < 200)) {
        cout << "split";
    } else if (x == 0 ||x == 1 ) {
        cout << "steal";
    } else {
        cout << "split";
    } 

    system("pause");
}

それは完全に機能しますが、次のように実行する必要があります。

C:\> program.exe 109

読み取り109、出力を提供します - "steal"

C:\> program.exe 0.5

読み取り0.5、出力が表示されます"split"

これを行うには、元のコードに何を追加する必要がありますか?

4

3 に答える 3

5

メインを次のように変更します

int main (int argc, char** argv)

でプログラムに指定されたパラメータの数argcと で値 (としてchar *) を確認できますargv。を使用してその値を float に変換できますstd::stof

float x = 0.0f;
if (argc > 1) {
    x = std::stof(argv[1]);
} else {
    std::cerr << "Not enough arguments\n";
    return 1;
}

プログラムの最初の引数は実行可能ファイル自体の名前 (このprogram.exe場合) であるため、少なくとも 2 つの引数を確認する必要があることに注意してください。

参照: http://en.cppreference.com/w/cpp/string/basic_string/stof

于 2012-12-18T06:29:18.937 に答える
0

これは、コマンド ライン引数を使用して行うことができます。main 関数の形式は次のとおりです。

int main (int argc, _TCHAR* argv[])
{
}

ここでargcは引数の数を表します(あなたの場合は 2 を返します、 program.exe 0.5 )

argv2 つの文字列を表します。1 番目の含有program.exeと 2 番目の含有0.5

このようにして、問題を解決できます

于 2012-12-18T06:31:31.783 に答える
0

質問をもっと明確にすることはできますか?コマンドライン引数を使用してコードを実行する方法を知りたいですか? その場合は次のとおりです。

int main (int no_of_args, char* arglist[])
{
}

ではargList、最初の項目は実行可能ファイルの名前を保持し、後続の項目は提供された入力を保持します。

于 2012-12-18T06:32:32.420 に答える