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 stehen11 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 geaendertnicht 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...
-
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;