Ciao a tutti,
posto un semplice programmino per il calcolo una serie numerica. Vorrei stampare i risultati in un file che creerà il programma.Per questo ho pensato di usare la funzione "fstream". Il problema è che i dati stampati nel file non sono bene incolonnati come invece appaiono nel terminale . Come posso risolvere il problema?
#include <iostream>
#include <stdlib.h>
#include <cmath>
#include <iomanip>
#include <fstream>
using namespace std;
typedef float DB;
ofstream out ("tabella1.dat");
int main()
{
int N=100,n,i;
DB p;
DB sum1,x,a;
cout<<"dammi il valore di x"<<endl;
cin>>a;
sum1 = 1;
cout<<"\n\n";
out<<"\n\n";
cout<<setw(4)<<"i"<<setw(16)<<"tn(x)"<<setw(16)<<"sum"<<setw(14)<<"diffrel"<<endl;
out<<setw(4)<<"i"<<setw(16)<<"tn(x)"<<setw(16)<<"sum"<<setw(14)<<"diffrel"<<endl;
cout<<endl;
out<<endl;
cout<<setw(5)<<"x = "<<a<<endl;
out<<setw(5)<<"x = "<<a<<endl;
sum1 = 1;
for (i=1;i<=N;i++){
p=1;
for(n=1;n<=i;n++){
p=p*n;
}
sum1 = sum1 + (pow(a,i)/p) ;
cout<<setw(4)<<i<<setw(16)<<(pow(a,i)/p)<<setw(16)<<sum1<<setw(14)<<(sum1-exp(a))/exp(a)<<endl;
out<<setw(4)<<i<<setw(16)<<(pow(a,i)/p)<<setw(16)<<sum1<<setw(14)<<(sum1-exp(a))/exp(a)<<endl;
}
}