Hallo,
Folgendes Programm haben wir in einer Übung ausgearbeitet…
#include
#include
using std::ofstream;
using namespace std;
bool createTestFile(char\* filename, int limit, unsigned int nNumbers);
bool printTestFile(char\* filename);
bool mergeSort(char\* filename);
void main()
{
int limit = 100; //Obere Zahlengrenze
const int maxlength = 10; //Länge Dateiname
unsigned int nNumbers = 10; //Anzahl zufälliger Zahlen
char filename[maxlength];
cout\>filename;
createTestFile(filename,limit,nNumbers); //rufe createTestFile auf
}
bool createTestFile(char\* filename, int limit, unsigned int nNumbers)
{
bool isOkay = false;
ofstream myFile(filename,ios::binary);
if(myFile.is\_open()) //Wenn Datei erfolgreich geöffnet, fülle sie mit Zufallszahlen
{
for(unsigned int count = 0; count
So, ... mit MergeSort werde ich noch zu kämpfen haben, weshalb ich das gleich mit einfüge. Aber zuerst ist meine Frage, wie die die Funktion printTestFile auszusehen hat. So wie das Programm jetzt steht, ist es für mich größtenteils verständlich, allerdings kann ich es noch nicht anwenden, da mir der Umgang mit myfile fremd.
Wie kann ich denn die mit createTestFile erstellte Datei wieder öffnen, und ausgeben?
Danke schonmal.
Hallo,
Folgendes Programm haben wir in einer Übung ausgearbeitet…
C+±Übung?
bool printTestFile(char* filename)
{
return false;
}
So, … mit MergeSort werde ich noch zu kämpfen haben, weshalb
ich das gleich mit einfüge. Aber zuerst ist meine Frage, wie
die die Funktion printTestFile auszusehen hat. So wie das
Programm jetzt steht, ist es für mich größtenteils
verständlich, allerdings kann ich es noch nicht anwenden, da
mir der Umgang mit myfile fremd.
Das sieht ein wenig nach „getarntem C“ aus, von
C++ ist ausser iostream nicht so viel zusehen 
Wie kann ich denn die mit createTestFile erstellte Datei
wieder öffnen, und ausgeben?
Ich würde das so machen (char * filename durch const string& fn ersetzt):
bool printTestFile(const string& fn)
{
ifstream myFile(fn.c\_str(), ios::binary);
if(!myFile) return false; // Wenn Datei erfolgreich geöffnet,
myFile.seekg (0, ios::end); // aus der Groesse der Datei die Anzahl
size\_t flen = myFile.tellg(); // der Zahlen drin ermitteln
myFile.seekg (0, ios::beg);
size\_t nNumbers = flen / sizeof(int); // Fehler: (flen % sizeof(int)) != 0
int \*temps = new int[nNumbers]; // temp-storage fuer Zahlen
myFile.read(reinterpret\_cast(temps), nNumbers\*sizeof(int));
cout (cout, " "));
return false;
}
An zusätzlichen Headern brauchst Du:
...
#include
#include
#include
...
Grüße
CMБ
Danke dir, ich werde es sobald als möglich ausprobieren und dir dann schreiben ob es funktionierte.