如何从命令行运行 c++ 代码(test.cpp):
./解决lm
其中 l 和 m = test.cpp 的输入变量
solve 是 test.cpp 的对象/可执行文件。
我知道我可以创建一个目标文件
g++ test.cpp -o 解决
但我怎么做
./解决lm
工作 ??
如何从命令行运行 c++ 代码(test.cpp):
./解决lm
其中 l 和 m = test.cpp 的输入变量
solve 是 test.cpp 的对象/可执行文件。
我知道我可以创建一个目标文件
g++ test.cpp -o 解决
但我怎么做
./解决lm
工作 ??
Main() 接受两个输入。第一个(argc)是输入的数量(在您的情况下为 2、l 和 m),它将两者放入一个 char* 数组(argv[])中。所以主要你会做:
#include <iostream>
using namespace std;
int main(int argc, char* argv[]) {
cout << "argc = " << argc << endl;
for(int i = 0; i < argc; i++)
cout << "argv[" << i << "] = " << argv[i] << endl;
return 0;
}
在此处阅读解析命令行参数:http://www.site.uottawa.ca/~lucia/courses/2131-05/labs/Lab3/CommandLineArguments.html
你不需要做任何特别的事情来从命令行接收参数;I 和 m 都将**argv
在您的主要功能中收到
您可以从主函数中提取“参数”。您必须解析它们并确保它们对您的程序可用。
int main( int argc, const char* argv[] )
int argc -> 参数数量和常量 char* argv[] 是参数的实际数组。请注意,第一个参数是程序的名称。然后是您在命令行中写出的所有其他内容。
特别是,argc
包含 中的条目数argv
。第一个条目argv
通常是程序的名称,所以如果有的话,您需要检查那个之后的元素。对于更复杂的程序,解析命令行参数可能会很痛苦。在这种情况下,您可能会对 Boost.ProgramOptions 感兴趣。
为了获得每个单独参数的大小,您可能会发现strlen
incstdlib
很有帮助。