如何在 gedit 中使用外部工具交互式运行 C++ 程序
Posted
技术标签:
【中文标题】如何在 gedit 中使用外部工具交互式运行 C++ 程序【英文标题】:How to run a C++ Program interactive using external tools in gedit 【发布时间】:2019-10-25 20:07:18 【问题描述】:我正在尝试使用外部工具直接在 gedit 中以交互方式运行我的 C++ 程序。
我已经编写了一个 Python 工具来编译它,但是当使用 os.system("./program.out")
时,程序的所有输入都设置为 0(但它正在正确执行)。
由于使用 Python 交互执行它会相当困难,我正在寻找另一种解决方案。
#!/usr/bin/env python3
import os
filename = os.getenv("GEDIT_CURRENT_DOCUMENT_NAME")
fout = "%s%s"%(filename[:len(filename)-4], ".out") #
os.system("c++ -o %s %s" % (fout,filename))
os.system("./%s" % fout)
编译工作完美无缺,但 ./program.out 也没有使用 bash 给出想要的结果。 有什么建议吗?
【问题讨论】:
GEdit 是否提供了一个终端,您可以提供输入? 我的第一反应:但是,为什么?您出于某种原因讨厌 IDE 吗? @DavisHerring 好点!我实际上找到了一些东西,但是它......是的......我会发布答案:) @LeDYoM 是的!我只是不喜欢它们,因为它们并没有真正到位,当然你需要额外的软件。我只想使用最少/我自己的工具^^ @LarsMüller:请注意,像 Emacs 这样功能更强大的编辑器实际上确实提供了可用于此类目的的终端。 【参考方案1】:我想我找到了答案。它可能不是最漂亮的解决方案,但它确实有效。
定义工具时,您可以在下拉菜单中选择输入,其中有一个选择文本作为输入的选项。
例如,如果您有一个从标准输入读取 3 个变量的程序,您可以在代码中添加注释,例如 //1 3 2
,只选择数字然后运行您的工具。
这些数字将按此顺序用作输入,不知何故它只适用于空格。
我猜,一个残酷的实现方式是扫描源代码中的输入调用,并通过 gedit 工具中的 zenity 请求它们。
【讨论】:
【参考方案2】:这是另一个解决方案:
我可以在工具中使用echo 3 2 1 | ./program.out
这让一切变得更容易
【讨论】:
以上是关于如何在 gedit 中使用外部工具交互式运行 C++ 程序的主要内容,如果未能解决你的问题,请参考以下文章