如何用PHP实现通过Web执行CC++程序

如何用PHP实现通过Web执行CC++程序,第1张

 例如,我们可以写一个能够通过命令行还接收参数的C++简单程序,并命名为Sampleapp.然后我们能够按照下面的方式给他传递三个不同的参数 :

 

Sampleapp ?参数一 ?参数二 ?参数三

这个程序的功能是能输出橘闷传递给他的参数的个数和每个参数的值,然后我们可以用PHP脚本程序来执行编译好的C++程序。

 

利用你习惯的文本编辑器,新建一个名为Sampleapp.cpp的文件,再此文件中输入如下的代码:

#include <iostream.h>

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

{

cout <<endl <<"You passed "

<<argc-1 <<" arguement"

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

<<"." <<endl

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

<<" arguement"

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

<<" "

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

<<endl <<endl

for(int i = 1i <argci++)

cout <<"[" <<i <<羡伍凳 "] "

<<argv[i] <<endl

return 0

}

这个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 <argci++)

cout <<"[" <<i <<"] "

<<argv[i] <<endl

最后,main函数逐一的输出命令行传入的每个参数,它用到了一个简单的for(;;)循环语句,这个函数能根据参数的个数将参数值一个一个的输出。假如我们传给程序两个参数“first”和second“, for循环输出的结果如下:

[1] ?first

[2] ?second

以上是关于这个C++程序的简单说明,它的功能十分简单,就是将命令行传入的参数用cout函数显示在输出屏幕上。

接下来,我们将编译这个。cpp文件,如果你在windows平台下,需要telnet到所使用的server上。在这里,我们使用大多Unix机器上都提供的G++编译器来编译这个源文件。不过为了确信你的机器安装了G++,你可以输入如下命令:which g++.如果G++已经安装了,Unix shell将显示出G++所在的全路径。如果没有安装,它将提示你说“command couldn‘t be found”。 你可以在这里下载到G++.在源文件所在的目录输入如下G++命令:

g++ -c sampleapp.cpp.

通过这个命令,我们就将。cpp文件编译成了包含机器代码的目标文件。通过 ls ?a命令,你可以发现在本目录下出现了一个新文件sampleapp.o,这就是。cpp源文件被编译成机器码的结果。不过我们最终想要的是一个可执行文件,因为我们还要输入如下的G++命令:

g++ sampleapp.cpp ?o sampleapp

这样我们就获得了一个名为sampleapp的可执行文件。不过注意的是,Unix下的可执行文件跟Windows不一样,它没有任何后缀。下面我们可以来检验一下程序执行的结果,如果如下命令:

sampleapp one -two /three

我们可以看到如下的执行结果:

You passed 3 arguments.

These arguments are:

[1] one

[2] ?two

[3] /three

现在,可执行的C++程序成生完毕,下面我们将生成一个能够通过web浏览器来访问这个程序的PHP教本程序。

这是两个完全不一样的程序语言。是不能相互调用的。

但是php的代码(如:循环)有很多是和c语言的代码想通的,只要懂C语言或者茄逗是其他的编程语言。那么学习PHP是氏颤很容易上手的。

希望对你有颤核卖帮助。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12370841.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存