Ciao a tutti,
sono nuova del forum e anche una neofita di c++. Ho un problema con questo codice, che deve leggere dei numeri da un file di testo e fare delle semplici operazioni. La compilazione viene eseguita correttamente, ma quando provo ad eseguire mi da errore di segmentazione...credo sia un problema di getline, ma non riesco a capire come risolverlo. Vi sarei molto grata se poteste aiutarmi.
Grazie mille!
#include <stdio.h>
#include <fstream>
#include <iostream>
using namespace std;
main ()
{
FILE *f_in;
FILE *f_out;
int dim_file_in = 0;
int max_lim = 512;
const char *nome_file = "lines.txt";
float R23 = 0.0;
float media = 0.0;
ifstream file_in("lines.txt");
if (file_in == NULL)
{printf("\n Errore\n", "lines.txt");
exit(-1);}
while (!file_in.eof())
{
file_in.getline (NULL, max_lim);
dim_file_in++;
}
file_in.seekg(0, ios::beg);
while (!feof(f_in)) {
float OII, OIIIa, OIIIb, Hb;
float rOII, rOIIIa, rOIIIb;
fscanf (f_in, "%e %e %e %e", &OII, &OIIIa, &OIIIb, &Hb);
rOII = OII / Hb;
rOIIIa = OIIIa / Hb;
rOIIIb = OIIIb / Hb;
R23+= (rOII + rOIIIa + rOIIIb);
printf ("%e %e %e %f\n", rOII, rOIIIa, rOIIIb, R23);
dim_file_in++;}
file_in.close();
media = R23 / dim_file_in;
ofstream file_out("media.txt");
file_out << "Valore medio del parametro R23: " << media << endl;
file_out.close();
}
|