Probleme beim String einlesen und reinschreiben



  • Hi !!!

    Bei mir passiert etwas, was ich nicht verstehe wenn ich im Code etwas hinzufüge.
    Vielleicht weiss jemand, woran es liegt.

    #include <iostream>
    #include <fstream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
      ifstream alt("datei.txt");
    
      if (!alt)     // Falls FileIn gültig ist.
        return 1;
    
      ofstream neu("neue.txt");
    
      string zeile;
      string eintrag;
    
      string val, col, row;
    
      neu <<  "Zeileneintrag";
      while(getline(alt,zeile))
      {
        neu << "\n";
        string::size_type Pos_s = 0;
        while ( (Pos_s  = zeile.find("_", Pos_s) ) != string::npos)
        {
          string::size_type Pos_begin = Pos_s;
          Pos_begin = zeile.rfind(" ", Pos_begin);
          Pos_begin;
          for(Pos_begin; Pos_begin < Pos_s-1; Pos_begin++)
          {
            val+=zeile[Pos_begin];
          }
          Pos_begin++;
    
          neu << val;
    
    //----------------------------------------------------
    // wenn ich das eingeklamerte durch diesen Kommentar hier rauslasse, 
    // dann schreibt er mir alles richtig ein in die Datei
    // Wenn ich das aber drin habe, so bleibt die Datei neue.txt leer
    //----------------------------------------------------
          Pos_begin++;
          string::size_type Pos_end = Pos_begin;
          Pos_end = zeile.find("+", Pos_end);
          for(Pos_begin; Pos_begin < Pos_end; Pos_begin++)
          {
            row+=zeile[Pos_begin];
          }
          cout << row << endl;  //im row steht der richtige Wert
          neu << row;
    //-----------------------------------------------------
    
          Pos_s++;
        }
      }
    
      alt.close();
      neu.close();
      return 0;
    }
    

    Warum wird wenn ich den 2-ten Teil in die datei neu einfügen will diese dann komplett geleert? Schliesslich stehen da doch schon Werte drin, oder nicht?
    Was mache ich falsch?
    Ich will in die Datei folgendes eintragen:
    0 >= + -1s_1 + 1s_2
    doch bis zum s_2 komme ich gar nciht erst 😞


Anmelden zum Antworten