Как можно автоматически подставлять входные значения в программу которая компилируется и запускается в консоли линукс?
У меня есть программа на с++ которая запускает и компилирует файл .cpp переданный ей, она нужна чтобы я потом смог сравнить тесты и то что выводит полученная программа, однако я не понимаю как мне подставить входные значения, не вручную набирая в консоли. Хочу чтобы программа выполнялась при определенных входных данных. Помогите пожалуйста(
#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <cerrno>
#include <stdexcept>
#include <fstream>
#include "pstream.h"
using namespace std;
//проверка
void exec_buf(ofstream &MyFile, const char* result) {
redi::ipstream proc(result, redi::pstreams::pstdout | redi::pstreams::pstderr);
string line;
char buf[1024];
while (getline(proc.out(), line))
MyFile << "stdout: " << line << '\n';
if (proc.eof() && proc.fail())
proc.clear();
if (proc.err().readsome(buf, sizeof(buf)) > 0) {
MyFile << "CE" << endl;
while (getline(proc.err(), line)) {
MyFile << "stderr: " << line << '\n';
}
}
}
int main() {
ofstream MyFile;
MyFile.open(("results.txt"));
const char *one = "make ";
const char *name = "check";
char result[100];
strcat(result, one);
strcat(result, name);
exec_buf(MyFile, result);
exec_buf(MyFile, "./check");
}
Источник: Stack Overflow на русском