C++ - 接受命令行参数?

use*_*969 3 c++

所以这是我的原始代码:

#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");
}
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但我需要它以这种方式运行:

C:\> program.exe 109
Run Code Online (Sandbox Code Playgroud)

它会读取109并给出输出 - "steal".

C:\> program.exe 0.5
Run Code Online (Sandbox Code Playgroud)

它会读取0.5并给我输出"split".

我需要添加到原始代码中才能执行此操作?

v15*_*4c1 5

将主要内容更改为

int main (int argc, char** argv)
Run Code Online (Sandbox Code Playgroud)

您可以检查程序中指定参数的数量argc和值(as char *)argv.您可以将该值转换为浮动使用std::stof

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

请注意,程序的第一个参数是可执行文件本身的名称(program.exe在您的情况下),因此您需要检查至少两个参数.

参考文献:http://en.cppreference.com/w/cpp/string/basic_string/stof