所以这是我的原始代码:
#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".
我需要添加到原始代码中才能执行此操作?
将主要内容更改为
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