繁体   English   中英

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

[英]C++ - accepting command line arguments?

所以这是我的原始代码:

#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"

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

将主要内容更改为

int main (int argc, char** argv)

您可以在argc检查程序的指定参数数量,并在argv检查值(作为char * )。 您可以使用std::stof将该值转换为float

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

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

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

您可以使用命令行参数执行此操作。 这是main函数的格式:

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

这里argc表示参数的数量(在你的情况下返回2,program.exe 0.5)

argv代表两个字符串。 第一个包含program.exe ,第二个包含0.5

这样你就可以解决你的问题

我们能否更清楚地解决这个问题? 您想知道如何使用命令行参数执行代码吗? 在这种情况下,它是:

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

argList ,第一个项目包含可执行文件的名称,后续项目保存所提供的输入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM