Komenda "system("gnuplot.exe")" nie działa - jak uruchomić Gnuplot?

0

Witam.
Mam program który powinien obliczać liczbę pi metodą Monte Carlo, wyniki zapisuje do pliku, a na końcu wyświetlać wykres zależności liczby losowań "n" od wartości obliczonej liczby "pi". Problem polega na tym, że muszę wyświetlić wykres programem Gnuplot (ma on brać wartości z tego zapisanego pliku), ale kompletnie nie wiem jak to zrobić. Dodam, że próbowałem komendy system(), ale chyba robiłem to nieprawidłowo, proszę o pomoc. To jest mój kod:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int main()
{
    srand(time(NULL));
    FILE*f = fopen("plik.txt", "w");
    double x,y;
    double pi;
    int i,n, nk = 0;
    printf("Wprowadz ilosc punktow do losowania: ");
    scanf("%d", &n);


     for(i = 0; i < n; i++){
        x = ((double)rand() / (RAND_MAX)) *2 - 1;
        y = ((double)rand() / (RAND_MAX)) *2 - 1;

        if(x*x + y*y <= 1){
             nk++;
              pi = (double)(4*nk)/n;
              fprintf(f, "%d %lf\n", i, pi);
        }
        printf("pi= %lf  %d\n", pi, i+1);
    }
    printf("%d %d", n, nk);
    pi = (double)(4*nk)/n;
    printf("pi = %lf\n", pi);
    fclose(f);

    return 0;
}
0

http://stackoverflow.com/questions/478898/how-to-execute-a-command-and-get-output-of-command-within-c-using-posix

#include <cstdio>
#include <iostream>
#include <memory>
#include <string>

std::string exec(const char* cmd) {
    char buffer[128];
    std::string result = "";
    std::shared_ptr<FILE> pipe(popen(cmd, "r"), pclose);
    if (!pipe) throw std::runtime_error("popen() failed!");
    while (!feof(pipe.get())) {
        if (fgets(buffer, 128, pipe.get()) != NULL)
            result += buffer;
    }
    return result;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1