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 jetzt

    string 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
    }
    

Anmelden zum Antworten