我正在做一个在线评判并遇到一些问题
我到现在为止做了什么?
所以我的PHP代码获取用户代码并将其提供给函数Compile(),该函数编译代码并报告编译是否成功.这部分代码运行得很好.
现在剩下的就是运行代码和评估
我的问题
我的问题是如何处理用户的标准输入.用户通常使用scanf,BufferedReader等从stdin获取输入,这些值通常使用键盘获取.现在假设我已将这些值写入文件中.我将如何为他们提供这些价值.
我的尝试
好吧,我正在寻找各种方式,我遇到了这个
fopen('php://stdin', 'w')
Run Code Online (Sandbox Code Playgroud)
如果我认为这个工作就像一个文件而不是它会导致问题,如果多个用户在同一时间使用stdin.
如果您有已编译的代码并且知道它的语言,那么它会更简单一些.
你可以使用exec函数来执行代码,你可以使用这样的命令(对于ac程序和测试):
$output = array();
exec("./main < sample_input.txt", $output);
Run Code Online (Sandbox Code Playgroud)
如果你现在检查$ output var,它在每个输出的行中都有一个数组条目.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
406 次 |
| 最近记录: |