1

如何从命令行运行 c++ 代码(test.cpp):

./解决lm

其中 l 和 m = test.cpp 的输入变量

solve 是 test.cpp 的对象/可执行文件。

我知道我可以创建一个目标文件

g++ test.cpp -o 解决

但我怎么做

./解决lm

工作 ??

4

4 回答 4

2

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

于 2012-05-03T03:39:55.087 回答
1

你不需要做任何特别的事情来从命令行接收参数;I 和 m 都将**argv在您的主要功能中收到

于 2012-05-03T03:37:45.780 回答
1

您可以从主函数中提取“参数”。您必须解析它们并确保它们对您的程序可用。

int main( int argc, const char* argv[] )

int argc -> 参数数量和常量 char* argv[] 是参数的实际数组。请注意,第一个参数是程序的名称。然后是您在命令行中写出的所有其他内容。

于 2012-05-03T03:41:37.460 回答
0

特别是,argc包含 中的条目数argv。第一个条目argv通常是程序的名称,所以如果有的话,您需要检查那个之后的元素。对于更复杂的程序,解析命令行参数可能会很痛苦。在这种情况下,您可能会对 Boost.ProgramOptions 感兴趣。

为了获得每个单独参数的大小,您可能会发现strlenincstdlib很有帮助。

于 2012-05-03T03:39:31.017 回答