Как можно автоматически подставлять входные значения в программу которая компилируется и запускается в консоли линукс?

Рейтинг: 0Ответов: 0Опубликовано: 08.01.2023

У меня есть программа на с++ которая запускает и компилирует файл .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");
}

Ответы

Ответов пока нет.