所以这是我的原始代码:
#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"
。
我需要添加到原始代码才能执行此操作?
答案 0 :(得分:5)
将您的主页改为
int main (int argc, char** argv)
您可以在argc
中查看指定参数的数量,在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;
}
请注意,程序的第一个参数是可执行文件本身的名称(在您的情况下为program.exe
),因此您需要检查至少两个参数。
参考文献:http://en.cppreference.com/w/cpp/string/basic_string/stof
答案 1 :(得分:0)
您可以使用命令行参数执行此操作。这是主要功能的格式:
int main (int argc, _TCHAR* argv[])
{
}
此处argc
表示参数数量(在您的情况下返回2,program.exe 0.5)
argv
代表两个字符串。第一个包含program.exe
,第二个包含0.5
。
这样你可以解决问题
答案 2 :(得分:0)
我们能否更清楚地解决这个问题?您想知道如何使用命令行参数执行代码吗?在这种情况下,它是:
int main (int no_of_args, char* arglist[])
{
}
在argList
中,第一项保存可执行文件的名称,后续项目保存所提供的输入。