Programm schreibt falsche daten in datei edit: kein problem mehr



  • Problem unten !

    #include <cstdlib>
    #include <iostream>
    #include <string>
    #include <windows.h>
    #include <fstream>
    #include <sstream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        int menu,saver,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,lettersaver[2000];
    
        cout<<"keycreator 1.0\n";
        cout<<"welcher modus ? von unten nach unten höhere sicherheit\n";
        cout<<"1: geschoben\n";
        cout<<"2: addiert\n";
        cout<<"3: zufallsgeneriert\n";
        cout<<"geben sie die Menuepunktzahl ein\n";
        cin>>menu;
        if(menu == 1)
        {
              int got,verschub;
              cout<<"Sie haben den Verschub Modus gewaehlt, geben sie den verschubssummanden ein (1-26): ";
              cin>>verschub;
              for (;got != 1;)
              {
              if (verschub <= 0)
              {
                      cout<<"die Zahl muss größer als 0 sein!: ";
                      cin>>verschub;     }
              if (verschub > 26)
              {
                           cout<<"zu groß: ";
                           cin>>verschub;
                           }
              if (verschub > 0&&verschub <= 26)
              {
                           got = 1;
                           }
              }
              saver = 1;
              a = saver + verschub; if(a > 26){a=a-26;}
              lettersaver[saver] = a;
              saver = saver + 1;
              b = saver + verschub; if(b > 26){b=b-26;}
              lettersaver[saver] = b;
              saver = saver + 1; 
              c = saver + verschub; if(c > 26){c=c-26;}
              lettersaver[saver] = c;
              saver = saver + 1;
              d = saver + verschub; if(d > 26){d=d-26;}
              lettersaver[saver] = d;
              saver = saver + 1;
              e = saver + verschub; if(e > 26){e=e-26;}
              lettersaver[saver] = e;
              saver = saver + 1;
              f = saver + verschub; if(f > 26){f=f-26;}
              lettersaver[saver] = f;
              saver = saver + 1;
              g = saver + verschub; if(g > 26){g=g-26;}
              lettersaver[saver] = g;
              saver = saver + 1;
              h = saver + verschub; if(h > 26){h=h-26;}
              lettersaver[saver] = h;
              saver = saver + 1;
              i = saver + verschub; if(i > 26){i=i-26;}
              lettersaver[saver] = i;
              saver = saver + 1;
              j = saver + verschub; if(j > 26){j=j-26;}
              lettersaver[saver] = j;
              saver = saver + 1;
              k = saver + verschub; if(k > 26){k=k-26;}
              lettersaver[saver] = k;
              saver = saver + 1;
              l = saver + verschub; if(l > 26){l=l-26;}
              lettersaver[saver] = l;
              saver = saver + 1;
              m = saver + verschub; if(m > 26){m=m-26;}
              lettersaver[saver] = m;
              saver = saver + 1;
              n = saver + verschub; if(n > 26){n=n-26;}
              lettersaver[saver] = n;
              saver = saver + 1;
              o = saver + verschub; if(o > 26){o=o-26;}
              lettersaver[saver] = o;
              saver = saver + 1;
              p = saver + verschub; if(p > 26){p=p-26;}
              lettersaver[saver] = p;
              saver = saver + 1;
              q = saver + verschub; if(q > 26){q=q-26;}
              lettersaver[saver] = q;
              saver = saver + 1;
              r = saver + verschub; if(r > 26){r=r-26;}
              lettersaver[saver] = r;
              saver = saver + 1;
              s = saver + verschub; if(s > 26){s=s-26;}
              lettersaver[saver] = s;
              saver = saver + 1;
              t = saver + verschub; if(t > 26){t=t-26;}
              lettersaver[saver] = t;
              saver = saver + 1;
              u = saver + verschub; if(u > 26){u=u-26;}
              lettersaver[saver] = u;
              saver = saver + 1;
              v = saver + verschub; if(v > 26){v=v-26;}
              lettersaver[saver] = v;
              saver = saver + 1;
              w = saver + verschub; if(w > 26){w=w-26;}
              lettersaver[saver] = w;
              saver = saver + 1;
              x = saver + verschub; if(x > 26){x=x-26;}
              lettersaver[saver] = x;
              saver = saver + 1;
              y = saver + verschub; if(y > 26){y=y-26;}
              lettersaver[saver] = y;
              saver = saver + 1;
              z = saver + verschub; if(z > 26){z=z-26;}
              lettersaver[saver] = z;
              saver = saver + 1;
              }
    
        if(menu == 2)
        {
                cout<<"not available now\n";
                cin.get();
                cin.get();
                return 0;
                }
        if(menu == 3)
        {
                cout<<"not available now\n";
                cin.get();
                cin.get();
                return 0;
                }
    
        if (menu!=1&&menu!=2&&menu!=3)
        {
                                      cout<<"not available now\n";
                cin.get();
                return 0;
                }
        //einschreiben
    
                 int fr,gut=1;     
                 char* pathchar;
                 string path,text;
                 fstream file;
                 stringstream convert,row;
                 string fileName;
                 cout<<"PFAD: ";
                 cin>>fileName;
    
                 cin.get();
    
                      file.open(fileName.c_str()); // oeffnen im Text-Modus
                if(file)
                {
                            saver = 0;
                            for(;fr<=26;fr++)
                            {
                            saver = saver + 1;             
                            text += lettersaver[saver] + "\n";
    
                            }                   
                            file << text; // fertigen Text speichern
                            file.close();
                }
                else
                {
                            cout << "Datei Fehler!";
                            gut = 0;
                }
                if(gut==1)
                {
                          cout<<"Schluessel erfolgreich geaendert\n"; 
                          }
    
        cin.get();
        return EXIT_SUCCESS;
    }
    

    das ist zuerst mal der code.
    bei dem wählen von menu = 1
    (gehtn nur||verschub)
    sollte beim verschubssummanden 10 in der datei das ungf stehen

    11
    12
    13
    14
    15
    .
    .
    .
    

    darin steht unglaublicherweise aber

    ler!er!r!!Schluessel erfolgreich geaendert
    chluessel erfolgreich geaendert
    hluessel erfolgreich geaendert
    luessel erfolgreich geaendert
    uessel erfolgreich geaendert
    essel erfolgreich geaendert
    ssel erfolgreich geaendert
    sel erfolgreich geaendert
    el erfolgreich geaendert
    l erfolgreich geaendert
    

    nicht das was ich dachte wie kommt das ??? 😕



  • int menu,saver,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,lettersaver[2000];
    

    lol, n1 xD

    in C++ deklariert man variablen _genau_ dort, wo sie gebraucht werden - außerdem würde man wahrscheinlich eine klasse oder zumindest paar funktionen bauen...

    für sowas, wie a,b,c,...,z würde sich evtl auch ein array lohnen?!

    bb



  • ja ich weiß aber, das hab ich wie ein altes prog geschrieben und code kopiert.
    🙄
    ja ja ich weiß...

    ähmm um zum prob zu kommen:
    wenn lettersaver[xxx] ein string is geht es fast nur wird dann ein zeichen dargestellt aus der zeichtabelle, praktisch das zeichen was an stelle 14 oda so ist also so ein komischer kasten.
    wie kann ich an dieser stelle da zahlen reinpacken .str() geht nicht und stringstream... geht das auch zeilensparender 😞



  • also ich finds ehrlich gesagt zu unübersichtlich, als das ich mich da jz reinfitzen würde - wird dem rest vll nicht sehr anders gehen... ^^



  • egal ich hab es jetzt mit stringstreams gemacht.
    und ich krieg das nicht übersichtlicher hin.
    klar sollte eig sein wenn man es postet...

    PS: das gleiche Probleme hatte ich schon mal, aber ich kann mir das alles nicht merken...


  • Administrator

    unskilled schrieb:

    also ich finds ehrlich gesagt zu unübersichtlich, als das ich mich da jz reinfitzen würde - wird dem rest vll nicht sehr anders gehen... ^^

    Jap, ich habe nun schon 5 Minuten investiert und probiert das Programm zu verstehen. Aber es ist so unübersichtlich formatiert und wohl auch viel zu viel Informationen drin, welche man gar nicht wissen muss, ich glaub ich bräuchte zuerst 30 Minuten, bis ich es verstehen würde. Aber habe keine Lust so viel Zeit zu investieren. Bereite deinen Code etwas auf, formatier die Sache leserlicher und zeig nur den relevanten Code.

    Grüssli



  • edit deleted all
    es fehlte die deklaration von fr = 0;


Anmelden zum Antworten