Problem mit Dateien

DeChecka

Erfahrenes Mitglied
Servus!
Ich bin dabei, mit Dev-C++ ein kleines Programm zu erstellen.
Leider habe ich da ein Problem...

Hier mal der Quellcode (Auszug):

Code:
ifstream text("Generator.txt");
 if(!text) /* Abfrage ob Generator.txt schon zum Lesen vorhanden ist, falls nicht wird die Datei erstellt */
 {
  ofstream neu("Generator.txt");
  neu << "Willkommen! Bei der ersten Nutzung vom Generator\nmüssen Sie diese Meldung löschen.";
  neu.close();
 }
 text.close();
 ifstream generator("Generator.txt");
 cout << "\nBitte ziehen die Spielpaarungen in den Generator (Datei: \"Generator.txt\")!\nDruecken Sie danach eine beliebige Taste um fortzufahren." << endl;
 getch();
 cout << "Bitte geben Sie die Nummer der Runde ein!" << endl;
 cin >> runde;
 cout << "Bitte geben Sie die Nummer des Spieltags ein!" << endl;
 cin >> spieltag;
 cout << "Wann ist Abgabefrist (tt.mm.jj., Stunden:Minuten Uhr)?" << endl;
 getline(cin, abgabe, '\n');
 cin.ignore();
 fstream zwischenspeicher("SaveTeams.txt");
 while(generator)/* Einlesen der Teamnamen aus "Generator.txt" */
 {
  zeichen = generator.get();
  if(((zeichen >= 65) && (zeichen <= 90)) || ((zeichen >= 97) && (zeichen <= 122))) /* Überprüfung auf A-Z bzw. a-z */
  {
   lesen[i++] = zeichen;
   lesen[i] = '\0';
  }
  if(zeichen == 'ü') /* Spezialfallbehandlung "ü": Umformen zu "ue" */
  {
   lesen[i++] = 'u';
   lesen[i++] = 'e';
   zeichen = 'e';
   lesen[i] == '\0';
  }
  if(((!((zeichen >= 65) && (zeichen <= 90))) && (!((zeichen >= 97) && (zeichen <= 122)))) && (i != 0)) /* Speicherung der Teams in "SaveTeams.txt" */
  {
   if(zaehler%2 == 0)
    zwischenspeicher << lesen << " ";
   else
    zwischenspeicher << lesen << "\n";
   zaehler++;
   i=0;
  }
 }
 for(zaehler=0; zaehler <=17; ++zaehler) /* Diese for-Schleife habe ich wieder herausgenommen... */
 {
  getline(zwischenspeicher, read[zaehler]);
 }
 zwischenspeicher.close();
 generator.close();

Folgendes passiert:
Beim ersten Starten des Programms läuft alles wie geschmiert...
Aus der Textdatei "Generator.txt" werden nur die für mich relevanten Zeichen ausgelesen, zu Wörtern zusammengefügt und in "Saveteams.txt" gespeichert, ebenfalls so, wie ich es will.
Als ich im Quelltext noch eine for-Schleife eingefügt habe, hat zwar der Compiler seinen Job einwandfrei gemacht, allerdings wurde beim Ausführen des Programms zwar die Datei "SaveTeams.txt" erstellt, leider aber nichts reingeschrieben.
Als ich die for-Schleife wieder aus dem Quelltext gelöscht habe und danach das Programm getestet, hat jetzt die Datei "SaveTeams.txt" wieder keinen Inhalt gehabt...
Das Komische daran ist ja, dass es ohne die for-Schleife funktioniert hat, jetzt allerdings nicht mehr...
Ich bin ziemlich ratlos, hoffe, ihr könnt mir helfen!
Ich vermute, es liegt irgendwie an meinen ifstreams und ofstreams, bin aber nicht sicher...

PS: Falls einer eine Methode weiß, wie ich char-Arrays wie "lesen[20]" nach füllen mit einem Wort (+ '\0') in std::strings umwandeln kann, bitte raus mit der Sprache!;)
Dann könnte ich mir das mit "SaveTeams.txt" sparen!

MfG
DeChecka
 
moin


Wie soll dir da jemand helfen können, so unübersichtlich wie dein Code ist?
Rauskopieren und testen geht auch nciht, da die ganzen Deklarationen der Variabeln fehlen!


mfg
umbrasaxum
 
Na also komm, wie soll ich denn das viel übersichtlicher machen?

Naja, hier die Deklarationen;):

char lesen[20], zeichen;
int i=0, runde, spieltag, zaehler=0;
string abgabe, read[17];

MfG
DeChecka
 
Zurück