Создание программы, которая компилирует данный код, используя g++

Я пытаюсь выяснить, как создать программу, которая компилирует написанный код с использованием g++ и тестирует, если он хорошо работает с примерами. В программе будет текстовое поле, в котором вы введете свой код (решение). Допустим, что упражнение заключалось в создании программы, которая рассчитывает сумму из 2 чисел.

#include <iostream>

using namespace std;

int main()
{
   int a, b;
   cin >> a >> b;
   cout << a + b;
   return 0;
}

Эта программа должна создать файл example.cpp, содержащий заданный код (я знаком с этой частью), и скомпилировать example.cpp, используя g++. При компиляции программа должна каким-то образом вводить примеры в скомпилированную программу и проверять правильность результата. Например, номера тестов 4 и 5, а результат должен быть 9. (Эти номера тестов могут быть сохранены в файлах TXT или что-то в этом роде).

system("g++ C:\\Users\\%USERNAME%\\Documents\\example.cpp");

С помощью этой программы компилируется example.cpp, но как ее запустить и протестировать.

Есть идеи? Спасибо!:)

Изменить: я могу запустить его и ввести тестовый номер в нем, осталось только проверить правильность вывода.

system("C:\\Users\\%USERNAME%\\Documents\\g++\\example.exe < example.txt");

1 ответ

Бывает, что на MSDN есть пример кода, который делает почти то, что вы хотите выполнить, то есть создает новый процесс и перенаправляет стандартный ввод и вывод в каналы, созданные родителем.

Другие вопросы по тегам