Sto cercando di riscrivere un programma che ci fece vedere il professore durante il corso, perché mi sono accorto che il mio è sbagliato in parte,
Il programma chiede di ordinare il contenuto di due file in un terzo file;
Il mio problema è che non ordina perfettamente, ma solo con elementi adiacenti, e se un file è più lungo dell'altro gli ultimi elementi non li ordina
void inserisciInVettore(){
fstream f1,f2,f3;
f1.open("/Users/Genna/Desktop/fondamenti di informatica/file/ricerca binaria e marge sort/Untitled/f1.txt",ios::in);
f2.open("/Users/Genna/Desktop/fondamenti di informatica/file/ricerca binaria e marge sort/Untitled/f2.txt",ios::in);
f3.open("/Users/Genna/Desktop/fondamenti di informatica/file/ricerca binaria e marge sort/Untitled/f3.txt",ios::out);
if (!f1 || !f2)
cout <<"ERRORE: FILE NON TROVATO!!! \n";
else{
int x,y;
if (!f1.eof())
f1 >> x;
if(!f2.eof())
f2 >> y;
while (!f1.eof() && !f2.eof())
{
if (x<y)
{
f3<<x;
f1>>x;
}
else if (x>y)
{
f3<<y;
f2>>y;
}
else
{
f3<<y;
f1>>x;
f2>>y;
}
}
while (!f1.eof())
{
f3<<x;
f1>>x;
}
while (!f2.eof())
{
f3<<y;
f2>>y;
}
f1.close ();
f2. close ();
f3.close ();
cout <<"Procedura terminata, andare nella directory del file f3\n";
}
}