Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gcc 运行C++;具有可变输入的程序 如何从命令行运行C++代码(test .CPP)为:_Gcc_G++_Runtime_Variable Assignment - Fatal编程技术网

Gcc 运行C++;具有可变输入的程序 如何从命令行运行C++代码(test .CPP)为:

Gcc 运行C++;具有可变输入的程序 如何从命令行运行C++代码(test .CPP)为:,gcc,g++,runtime,variable-assignment,Gcc,G++,Runtime,Variable Assignment,/我是 其中l和m=test.cpp的输入变量 solve是test.cpp的对象/可执行文件 我知道我可以用 g++test.cpp-o solve 但是我该怎么做呢 /solve l m 工作;I和m都将在主函数中的**argv中接收您不需要做任何特殊的事情来从命令行接收参数;I和m都将在主函数中的**argv中接收特别是,argc包含argv中的条目数。argvargv中的第一个条目通常是程序名,因此您需要检查该条目之后的元素,前提是存在任何元素。对于更复杂的程序,解析命令行参数可能是一件

/我是

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

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

我知道我可以用

g++test.cpp-o solve

但是我该怎么做呢

/solve l m


工作;I和m都将在主函数中的
**argv
中接收

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

特别是,
argc
包含
argv
中的条目数。argv
argv
中的第一个条目通常是程序名,因此您需要检查该条目之后的元素,前提是存在任何元素。对于更复杂的程序,解析命令行参数可能是一件痛苦的事情。在这种情况下,Boost.ProgramOptions可能会引起您的兴趣


为了获得每个参数的大小,您可能会发现
cstdlib
中的
strlen
非常有用。

尤其是
argc
包含
argv
中的条目数。argv
argv
中的第一个条目通常是程序名,因此您需要检查该条目之后的元素,前提是存在任何元素。对于更复杂的程序,解析命令行参数可能是一件痛苦的事情。在这种情况下,Boost.ProgramOptions可能会引起您的兴趣

为了获得每个参数的大小,您可能会发现
cstdlib
中的
strlen
非常有用。

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; 
}
#包括
使用名称空间std;
intmain(intargc,char*argv[]){
coutMain()接受两个输入。第一个(argc)是输入的数量(在您的示例中为2、l和m),它将这两个输入放入char*数组(argv[])。因此在Main中,您可以执行以下操作:

#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; 
}
#包括
使用名称空间std;
intmain(intargc,char*argv[]){
cout您可以从主函数中提取“参数”。您必须解析它们,并确保它们对您的程序可用

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

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

int main( int argc, const char* argv[] )
int argc->参数数量 常量char*argv[]是参数的实际数组。 请注意,第一个参数是程序的名称。
然后是您在命令行中写下的所有其他索引。

您是从arg[1]而不是arg[0]读取的吗?我自己对此不太了解,但我相信您是从第二个索引而不是第一个索引读取的。您是从arg[1]而不是arg[0]读取的吗?我自己对它不太了解,但我相信您是从第二个索引而不是第一个索引中读取的。我认为这取决于您运行的C运行时/平台。第一个参数通常是在大多数Unix系统上运行的程序的名称,对我来说也是如此,因此当程序在没有参数的情况下运行时,argc是1。我认为这取决于t您运行的是C运行时/平台。第一个参数通常是在大多数Unix系统上运行的程序的名称,对我来说是这样,因此当程序在没有参数的情况下运行时,argc是1。