006
10.12.2004, 10:26 Uhr
~Th
Gast
|
Also du solltest mal versuchen nicht so viele Variablen zu verwenden und Funktionen verwenden, z.B.
C++: |
void Encrypt(char *enc, int len, int code) { for (int i = 0; i < len; i++) { *enc += code; enc++; } }
|
so daß die Decrypt-Funktion natürlich analog aussehen muß (also mit *)
C++: |
void Decrypt(char *enc, int len, int code) { for (int i = 0; i < len; i++) { *enc -= code; enc++; } }
|
Da du ja C++ benutzt, solltest du lieber den Datentyp std::string verwenden (aus <string>, also
C++: |
void Encrypt(std::string &s, int code) { for (int i = 0; i < s.length(); i++) { s[i] += code; } }
void Decrypt(std::string &s, int code) { for (int i = 0; i < s.length(); i++) { s[i] -= code; } }
|
Aufruf dann mit:
C++: |
std::string sName; int code;
std::getline(cin, sName); // ist als Funktion implementiert, nicht als Methode cin << code;
Encrypt(sName, code);
cout << sName; // verschlüsselte Ausgabe
|
bzw.
C++: |
std::string sName; int code;
std::getline(infile, sName); // ist als Funktion implementiert, nicht als Methode cin << code;
Decrypt(sName, code);
cout << sName; // wieder original Name
|
Genau habe ich dein Programm nicht angesehen, aber z.B. bei
sollte dein Compiler eigentlich eine Warnung geben (Vergleich statt Zuweisung). Und um die Fehler zu finden, solltest du stets versuchen, das Programm aufzuteilen: Standard ist EVA: Eingabe, Verarbeitung, Ausgabe.
Alles in die main-Funktion zu packen ist unübersichtlich und wie du siehst sind Fehler schwerer zu finden.
Viel Spaß noch beim Lernen von C++... |