[英]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.