Создание программы, которая компилирует данный код, используя 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 есть пример кода, который делает почти то, что вы хотите выполнить, то есть создает новый процесс и перенаправляет стандартный ввод и вывод в каналы, созданные родителем.