Datei speichern wenn bedingung erfüllt ist

Delecras

Grünschnabel
Hey leute,

ich habe derzeit ein Problem und ich bekomme es nicht gelöst.

Kurze Erklärung:

Ich will eine Zahl eingeben und dann soll die schleife laufen, bis die eingegebene Zahl erreicht ist. -Klapt auch super-.
Dabei soll diese zahl in einem *.txt gespeichert werden. -was auch klappt-.

nun will ich aber wenn ich das das Programm noch mal aufrufe und eine kleinere Zahl eingebe, dass die kleinere Zahl gespeichert wird. Wenn ich eine Größere eingebe soll nix gespeichert werden.

Das ist jetzt nur von mir ein schnell geschriebenes Programm um zu zeigen was ich mein.
Es soll wie beim Highscore sein, die kleinere Zahl speichert man die größere zahl nicht.


Code:
int main(void)
{  
    int max_zahl, zahl = 1;
    
    string gespeicherte_zahl;

    
    ofstream odatei;
    ifstream idatei;
    
     
    cout << "Gib hier bitte die Maximale zahl ein" << endl;
    cin >> max_zahl;  
    
    
    
    
    for(zahl = 1; zahl <= max_zahl; zahl++)
    
    
    
     cout << zahl  << endl;


 if(gespeicherte_zahl > zahl)            // wenn das weg ist, läuft das programm.
            
        
        odatei.open("auftrag.txt", ios_base::trunc);
        
        odatei << zahl -1 ;
        
        
        odatei.close();
        
    
        
        idatei.open("auftrag.txt", ios_base::out);
        getline(idatei,gespeicherte_zahl);
        idatei.close();
        
       cout << "\n Die neue kleinere Zahl ist" << gespeicherte_zahl;
        
 else       
        
        cout <<"\n Die aeltere gespeicherte zahl ist immer noch " <<  gespeicherte_zahl;        
    
    
    
    cin.sync();  // damit sich das Programm nicht sofort beendet und man die Ausgabe sehen kann 
   cin.get();
    
    return 0;
    
    
}

Ich weiß auch eigentlich was der Fehler ist, nur weiß ich nicht wie ich bei der schleife lösen soll.

wäre super wenn ihr mir helfen könnt und ich hoffe ihr wisst wie ich was meine :).
 
Hey leute,

ich habe das Problem soeben gelöst****** Nur falls jemand das selbe Problem hat poste ich die Lösung rein! Also:

Code:
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main (void)
{
    
    
    int highscore,hsalt;
    fstream schreib;
  
    
   schreib.open("hsalt.bin",ios::in | ios:: binary);
   schreib.read((char*)&hsalt, sizeof(hsalt));
   schreib.close();
   
   cout << hsalt << endl;
   
   
    cout << "bitte eine zahl eingen" << endl;
    cin >> highscore;
    
   if(hsalt > highscore)                
    {
   
    
    
    schreib.open("hsalt.bin",ios::out | ios::binary);
    schreib.write((char*)&highscore,sizeof(highscore));
    schreib.close();
    
       
    cout << " neuer HS " << highscore << endl;
    cout << " alter HS war " << hsalt << endl;
} 
    
    else 
    
    cout << " alter HS " << hsalt << endl;
    
    
    cin.get(); //damit das Prog offen bleib!
    cin.get();
    
    return 0;
    
    
}

falls jemand eine bessere Lösung hat wäre cool wenn sie hier steht!

Bis dann Dele
 

Neue Beiträge

Zurück