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

У меня есть две программы (два разных cpp файла), в которых происходит запись результата в один csv файл. Из первой программы записывается значение Opt из второй все остальные значения. И получается такая ситуация: Как не должно быть

Как можно сделать так, чтобы все данные из 3 строки записывались на строчку выше и сохранялось значение колонки Opt? То есть результат должен быть таким:

Как должно быть

Код 1 программы, где формируются названия столбцов и записывается значение Opt во вторую строку:

void Write_Optimisation(string opt)
{
    ofstream Benchmark_Result;
    Benchmark_Result.open("Benchmark_Result.csv", ios_base::app);
    Benchmark_Result << "PModel;" << "Task;" << "OpType;" << "Opt;" << "InsCount;" << "Timer;" 
    << "Time;" << "LNum;" << "AvTime;" << "AbsErr;" << "RelErr;" << "TaskPerf;" << endl;
    Benchmark_Result << " " << ";" << " " << ";" << " " << ";" << opt << ";" << " " << ";"
    << " " << ";" << " " << ";" << " " << ";" << " " << ";" << " " << ";" << " " << ";" << " " << ";" << endl;
}

Код 2 программы, где записываются оставшиеся значения на строку ниже, чем значение Opt:

void Calculate_Time(double* Time, int Quantity_Test)
{
    benchmark.PModel = "Intel Core I5 9300h";
    benchmark.Timer = "time.h";
    ofstream Benchmark_Result;
    Benchmark_Result.open("Benchmark_Result.csv", ios_base::app);
    
    for(int i = 0; i < Quantity_Test; i++)
    {
        double AvTime = Time[i];
        AvTime += AvTime / Quantity_Test;
        double AbsErr = abs(Time[i] - AvTime);
        double RelErr = (AbsErr / AvTime) * 0.1;
        double InsCount = 1000000;
        double TaskPerf = TaskPerf + (InsCount / Time[i]);
        TaskPerf = pow((1 / TaskPerf), -1);
        if(i == 0)
        Benchmark_Result << benchmark.PModel << ";" << benchmark.Task << ";" << benchmark.OpType << ";" << "" << ";" << InsCount << ";"
        << benchmark.Timer << ";" << Time[0] << ";" << i+1 << ";" << AvTime << ";" << AbsErr << ";" << RelErr  << ";" << TaskPerf << ";" << endl;
        if(i != 0)
        Benchmark_Result << " " << ";" << " " << ";" << " " << ";" << " " << ";" << InsCount << ";"
        << " " << ";" << Time[1] << ";" << i+1 << ";" << AvTime << ";" << AbsErr << ";" << RelErr  << ";" << " " << ";" << endl;
    }
    Benchmark_Result << "\n";
}

Ответы (0 шт):