使用gcc和php编译C代码以进行多次输入

时间:2013-09-19 17:12:53

标签: php c gcc

我正在尝试使用gcc编译器执行c代码。我创建了一个dynamic_code.c文件,就像这样

#include <stdio.h> 
int main()
{
char ch;
char str[100]; 
printf("Enter any character \n");
scanf("%c", &ch);
printf("Entered character is %c \n", ch);
printf("Enter any string ( upto 100 character ) \n");
scanf("%s", &str);
printf("Entered string is %s \n", str);
} 

现在使用gcc编译器我想在生成输出时执行它。条件是在编译期间传递的输入。

使用php

 $input = 's world';
 exec("gcc dynamic_code.c -o dynamic_code");
 $string="echo '".$input."' | ./dynamic_code";
 $output=exec($string);
 $json = json_encode($output);
 echo $json;

输出来了

"Entered string is world"

我如何制作

Enter any character
Entered character is S
Enter any string ( upto 100 character )
Entered string is world

由于 编辑: 看到这个......我想要这样的东西 http://cfiddle.net/jlmKDA

我认为问题是要收集所有输出...只存储最后一个printf输出

1 个答案:

答案 0 :(得分:0)

$output=exec($string)会将$output设置为命令结果中的 last 行。

使用

exec($command, $output);
print_r($output);

如果输出参数存在,那么指定的数组将被命令的每一行输出填充。尾随空格(例如\ n)不包含在此数组中。 ...

http://php.net/manual/en/function.exec.php