Как запустить интерактивную программу на C ++ с использованием внешних инструментов в gedit - PullRequest
1 голос
/ 25 октября 2019

Я пытаюсь запустить мою программу C ++ в интерактивном режиме прямо в gedit, используя внешние инструменты.

Я уже написал инструмент 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. Есть предложения?

Ответы [ 2 ]

0 голосов
/ 26 октября 2019

И вот еще одно решение:

Я могу просто использовать echo 3 2 1 | ./program.out в инструменте

, это делает все намного проще

0 голосов
/ 26 октября 2019

Я думаю, что нашел ответ. Это может быть не самое красивое решение, но оно работает.

При определении инструмента вы можете выбрать вход в раскрывающемся меню, есть опция для выбранного текста в качестве ввода.

Так, например, если у вас есть программа, которая читает 3 переменные из стандартного ввода, вы можете добавить комментарий к своему коду, например //1 3 2, выбрать только цифры и запустить инструмент. Эти числа будут использоваться в качестве входных данных в этом порядке, так или иначе, это работает только с пробелами.

Жестокий способ реализации этого состоит в том, чтобы сканировать входящие вызовы в исходном коде и запрашивать их через zenity в gedit. инструмент, я думаю.

...