Ecco il file sorgente :
#include <iostream>
#include <fstream>
#include <iomanip>
#define maxcarnomefile 10
#define dimvett 100
#define maxcarnomefile1 20
void aprifile (int vett[], int riemp);
typedef char T_nome_file[maxcarnomefile1];
usig namespace std;
int letturamatrice (char nf[], int * &mat, int &n);
void uscitamatrice (int *mat, int n);
usig namespace std;
int main ()
{
int riemp=0;
int vett[dimvett];
aprifile(vett,riemp);
T_nome_file nome_file;
int *MAT;
int N;
cout<<"\n inserisci il nome del file contenente i dati ";
cin.getline(nome_file,maxcarnomefile1-1, '\n');
letturamatrice(MAT,N);
return 0;
}
void aprifile (int vett[], int riemp)
{
char nomefile[maxcarnomefile];
fstrem miofile;
miofile.open("D:\\vettore.txt", ios::in);
if(!miofile)
{
cout<<"errore di apertura del file"<<nomefile;
exit (1);
}
miofile>>riemp;
for(int i=0;i<riemp;i++)
miofile>>vett;
cout<<"gli elementi letti sono : "<<riemp;
for(int i=0;i<riemp;i++)
{
cout<<"\n VETT["<<setw(2)<<i<<"] =";
cout<<setw(5)<<vett;
}
miofile.close();
cout<<endl<<endl;
}
int*elemento(int*mat, int r, int n)
{
return mat+((r*n)+c);
}
int letturamatrice(char nf[], int * &mat, int &n)
{
int r, c, valore;
fstream miofile1;
miofile1.open(nf, ios::in);
if(!miofile1)
{
cout<<"errore di apertura file";
exit (0);
}
miofile1>>n;
mat=new int [n*n];
for(int r=0;r<n;r++)
for(int c=0;c<n;c++)
{
miofile1>>valore;
*elemento(mat,r,c,n)=valore;
}
miofile1.close();
return o;
}void uscitamatrice(int *mat, int n)
{
int r,c;
cout<<"\n matrice quadrata di ordine N= "<<n;
for(r=0;r<n;r++)
{
cout<<endl;
for(c=0;c<n;c++)
cout<<setw(4)<<*elemento(mat,r,c,n);
}
}