Forum: PC-Programmierung Daten sicher Schreiben bzw lesen


von Ching (Gast)


Lesenswert?

Hallo!

in meinem  Programm habe ich zwei Methoden; eine save() soll die Daten 
in einer Datei schreiben  und  die andere laden() Kann die Daten einfach 
wieder lesen. meine Frage ist  wie kann ich nun  die beiden  Methoden 
ändern, damit ich sicher davon  ausgehe,dass die Daten richtig 
geschrieben bzw geladen sind.

Hier sind Abschitt von meinem code:
data.h
1
class DATA{
2
3
 private:
4
 
5
   int dmin,fmas;
6
   int dmax;
7
   int Dmun;
8
  
9
public:
10
11
  DATA(int a,int b, int c, int d,int e);
12
  void setvalue();     
13
   void save (); 
14
   void load ();
Data.cpp
1
 
2
3
void DATA::save(){
4
5
  std::string fname;
6
  cout<<"filname eingeben"<<endl;
7
  cin >> fname;
8
9
  ofstream outf;
10
  outf.open( fname.data()); 
11
  if( !out ) {
12
    cout << "Datei " << fname << "konnte nicht geöffnet werden" << endl;}
13
14
  out <<dmin;
15
   out<<dmax;
16
   out <<fmas;
17
    out <<dmun;
18
19
  outf.close();
20
21
}
22
  
23
void DATA::load(){
24
 
25
   std::string lf;                    
26
  cout << "Dateiname  eingeben: " << endl;
27
  cin >> lf;  
28
  ifstream inf;
29
   inf.open(lf.data() );              
30
  if( !inf ) {
31
    cout << "Datei " << lf << " konnte nicht geöffnet werden" << endl;
32
  }
33
34
    inf >> dmin;
35
    inf >>dmax;
36
    inf >> fmas;
37
    inf >>dmun;
38
39
    inf.close(); 
40
   }

Danke schönmal im Voraus

Gruß
Ching

von Ching (Gast)


Lesenswert?

ich habe mein  Programm geändert und möchte,dass es im Schleife bleibt 
wenn es die Daten nicht richtig geschreiben bzw geladen sind oder wenn 
ich falche Dateiname eingebe, daher habe ich folgendes versucht:
1
void DATA::save(){ 
2
ofstream  outf; 
3
4
 do{ 
5
std::string fname; 
6
cout<<"filname eingeben"<<endl; 
7
cin >> fname; 
8
9
ofstream  outf (fname.c_str()); 
10
  if( !outf ) { 
11
 cout << "Datei " << fname << "konnte nicht geöffnet werden" << endl;} 
12
13
  outf << dmin;   
14
  outf << dmax; 
15
   outf << fmas; 
16
   outf << dmun; 
17
  
18
 if (!outf)  cout<< "Fehler beim Schreiben!"; 
19
  
20
      }while(!outf); 
21
}
1
void DATA::load(){ 
2
      do{ 
3
ifstream  inf;   
4
std::string lf; 
5
  cout << "Dateiname  eingeben: " << endl; 
6
7
  cin >> lf; 
8
  ifstream  inf(lf.c_str()); 
9
   if( !inf ) { 
10
   cout << "Datei " << lf << " konnte nicht geöffnet werden" << endl; 
11
 } 
12
     inf >> dmin; 
13
      inf >> dmax; 
14
    inf >> fmas; 
15
    inf >> dmun; 
16
  
17
   if (!inf) throw std::runtime_error("Lesefehler!");  
18
   cout <<" richtige Dateiname eigeben"; 
19
      
20
}while(!inf); 
21
     

Kann mir da jemand weiter helfen

von Purzel H. (hacky)


Lesenswert?

Das kann man doch mit Singlestep durchsteppen...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.