background image

PHP 中通过 Web 执行 C/C++应用程序

  这个

C++程序包含的程序的入口点:main(),main()函数带了两个参数:argc(命

令行传入参数的个数

)和 argv(一个包含了所传参数实际值的字符型指针数组)。这个

两个参数能被

C++

 

编译器自动捕获。

 

  

  

cout << endl << "You passed " << argc-1 << " arguement" 

  

<< (argc-1 == 1 ? "" : "s") << "." << endl;; 

 

  

  这句话的意思是获得从执行命令行传入的参数的个数。

Argv 这个字符型指针数

组是从

0 开始检索的,它至少包含一个实际的值(即本程序的路径和名称),这个

值由

C++

编译器自动地附加上去。条件操作符

?”是用来判断命令行传入地参数是

否多于一个。例如,如果命令行过传入两个参数,我们地程序将输出如下信息

 

  

  

You passed 2 arguments. 

 

  

  

cout << (argc-1 == 1 ? "This" : "These") 

  

<< " arguement" << (argc-1 == 1 ? "" : "s") << " " 

  

<< (argc-1 == 1 ? "is" : "are") << ": " << endl << endl; 

 

  

  接下来,我们同样用条件操作符来输出另一句话。不过要记住,即使我们不从

程序执行命令行传入任何参数,

main 函数地 argv[]参数也包含一个值。同样地,

 

如果我们从命令行传入两个参数给程序,程序将输出如下地信息:

 

  

  

These arguments are: 

 

  

  

for(int i = 1; i < argc; i++) 

  

cout << "[" << i << "] " << argv[i] << endl;