string in double umwandeln ?
-
hallo,
hab ein string x;
in x steht aber eigentlich eine double Zahl.jetzt wollte ich :
fstream fio; int i; fio.open("Kunden.txt",ios::out|ios::app); //Datei öffnen;Daten am Ende i=atof(x); i++; x=i; fio << x;also einen sting aus einer datei lesen, in double umwandeln, um 1 erhöhen und wieder in die datei schreiben ....
Danke
Chris
-
sry ,
hab jetztstring x; getline(fio,x);vergessen
chris
-
double val; fio >> val; ++val; fio << val;gruß
-
danke,
ich habs eingebaut, und funktioniert auch , nur verträgt es sich noch nicht mit meinem Programm , in einem anderen zusammenhang:
Wenn die Datei neu erstellt wurde ist sie leer , wenn sie schon vorhanden ist stehen in den ersten zwei zeilen zahlenwerte :
AnzahlArtikel und GesamtPreis ;Wie kann ich ihm jetzt sagen das er
WK >> AnzahlArtikel ;
WK >> GesamtPreis ;
nur ausführt wenn die Datei schon vorhanden war ??
wenn sie neu erstellt wurde, und noch nichts drinn steht soll er nix machen, bwz
0
0 reinschreiben ?Dachte open gibt mir ein wert zurück mit dme ich das prüfen kann, ist aber nicht so
.. wie dann ??mein Problem :
das funktioniert :WK.open(dateiname.c_str(),ios::in | ios::out); WK >> AnzahlArtikel ; WK >> GesamtPreis ;Wenn die Datei leer ist ist in AnzahlArtikel und GesamtPreis der initialisierungswert = 0 ;
Problem ist aber, ist die Datei leer und ich rufe folgende Funktion auf:
void Warenkorb::WarenkorbAnzeigen() { string x; WK.seekg(ios::beg); while (!WK.eof()) { getline(WK,x); cout<<x<<endl; } }diese funktion gibt mir endlos leerzeilen aus....

was nun ? ... hoffe ich hab es net zu durcheinander geschrieben ?
chris
-
Du mußt nach dem Einlesen überprüfen, ob es geklappt hat:
WK>>Preis if(!WK) cout<<"Fehler beim Lesen"<<endl; else { //hier geht's weiter }