我试图从 php 传递一个字符串到 C++,我设法弄清楚如何传递数字,但它不适用于字母。这是我拥有的适用于 PHP 的内容
<?php
$r = 5;
$s = 12;
$x= 3;
$y= 4;
$q= "Hello World";
$c_output=`project1.exe $r $s $x $y $q`; // pass in the value to the c++ prog
echo "<pre>$c_output</pre>"; //received the sum
//modify the value in php and output
echo "output from C++ programm is" . ($c_output + 1);
?>
这会将变量 r、s、x、y 和 q 发送到 C++ 程序 project1.exe 和 IT WORKS,但问题是它不适用于字符串变量 $q。
这是我在 C++ 程序中的代码,很简单:
#include<iostream>
#include<cstdlib>
#include<string>
using namespace std;
int main(int in, char* argv[]) {
int val[2];
for(int i = 1; i < in; i++) { // retrieve the value from php
val[i-1] = atoi(argv[i]);
}
double r = val[0];
double s = val[1];
double x = val[2];
double y = val[3];
double q = val[4]; // here's the problem, as soon as i try to define val[4] as a string or char, it screws up
cout << r;
cout <<s;
cout << x;
cout << y;
cout << q;
// will output to php
return 0;
}
它有效,但是对于我从 PHP 通过 $q 传递的字符串“Hello world”并没有给我返回字符串(我知道它被定义为双精度,但是一旦我尝试将其更改为字符串或char 变量,代码无法编译)。
请向我解释我必须如何解决这个问题,以便可以将 $q 作为字符串处理。仅供参考,我是编程新手(6 个月)。