HILFE--->Dateiverarbeitung
-
Hallo zusammen,
ich habe eine Frage bzgl einer aktuellen Aufgabenstellung
Hier die Aufgabe:
Schreiben Sie eine Funktion, mit deren Hilfe zwei aufsteigend sortierte Dateien in eine dritte Datei gemischt werden können. Die entstehende Datei soll also anschließend auch aufsteigend sortiert sein.
Die Dateinamen werden in der Parameterliste übergeben.zwei Dateien mit sortierten double werten sind uns gegeben worden, wie erstelle ich eine dritte anhand der beiden die ich dann ausgeben kann?
Wir haben erst grade mit Dateiverarbeitung angefangen und gehen leider mit dem Thema sehr zügig durch so dass es für Rookies sehr schwer ist mitzukommen.DANKE schonmal dür die Antworten.
gruß shader76
-
eine komplette funktion kann und will ich dir nicht geben das wäre nicht im sinne des unterrichts aber:
* einlesen der dateien (der werte also) in einen array (zb. einen vector oder list)
* sortieren des arrays
* ausgeben in eine dritte dateisollte sich alles wunderbar über die stl machen lassen, die bietet dazu auch schöne funktionen
-
....habe es gelöst,..trotzdem danke nochmal.............
QUELLCODE:
#include <iostream>
#include <fstream>
#include <string>
using namespace std ;int main ()
{
system("clear");ifstream datei1 ( "aufsteigend1.dat" , ios :: in ) ;
if ( !datei1 )
{
cerr << "FEHLER beim oeffnen der Datei !!" << endl ;
exit ( 1337 ) ;
}ifstream datei2 ( "aufsteigend2.dat" , ios :: in ) ;
if ( !datei2 )
{
cerr << "FEHLER beim oeffnen der Datei !!" << endl ;
exit ( 1337 ) ;
}ofstream ende("ergebnis.dat",ios::out);
if (!ende )
{
cerr << "FEHLER beim oeffnen der Datei !!" << endl ;
exit ( 1337 ) ;
}double temp1=0, temp2=0;
datei1.read ( (char*) &temp1 , sizeof ( double ) ) ;
datei2.read ( (char*) &temp2 , sizeof ( double ) ) ;while ( datei1 || datei2 )
{
if(datei1.eof())
{
while(datei2)
{
cout<<temp2<<endl;
ende.write((char*)&temp2,sizeof(double));
datei2.read((char*)&temp2,sizeof(double));
}
}else if(datei2.eof())
{
while(datei1)
{
cout<<temp1<<endl;
ende.write((char*)&temp1,sizeof(double));
datei1.read((char*)&temp1,sizeof(double));
}
}
else
{
if(temp1 < temp2)
{
cout<<temp1<<endl;
ende.write((char*)&temp1,sizeof(double));
datei1.read((char*)&temp1,sizeof(double));
}else
{
cout<<temp2<<endl;
ende.write((char*)&temp2,sizeof(double));
datei2.read((char*)&temp2,sizeof(double));
}
}
}if(!datei1.eof())
{
cout<<"-->FEHLER"<<endl<<endl;
exit(564);
}if(!datei2.eof())
{
cout<<"-->FEHLER"<<endl<<endl;
exit(564);
}datei1.close () ;
datei2.close () ;
ende.close ();/*cout<<endl<<"-------------------------------------------------------------------------"<<endl<<endl;
ifstream auslesen("ergebnis.dat",ios::in);
if(auslesen)
{
cout<<"FEHLER beim oeffnen von AUSLESEN"<<endl;
exit(EXIT_FAILURE);
}
auslesen.read((char*)&temp1,sizeof(double));
while(auslesen)
{
cout<<temp1<<endl;
auslesen.read((char*)&temp1,sizeof(double));
}
if(auslesen.eof())
{
cout<<"-->FEHLER!!"<<endl<<endl;
exit(EXIT_FAILURE);
}
auslesen.close();*/return 0 ;
}