Fehler im Verschlüsslungsprogramm
-
Hi Leute
Hab einen paar Fehler in meinem Programm und weiß nicht, wie ich diese lösen soll. Vielleicht könnt ihr mir ja helfen.
Hier ein Codeausschnitt aus dem Programm:
char* filename = new char[50]; char* str = new char[100]; ofstream file; file.open("test.txt", ios::out); ... //Andere Anweisungen ... for(unsigned i=0, j=0; i < str.size(); ++i, j == key.size() ? j=0 : ++j) //Fehler str[i] ^= key[j]; file >> str; //Fehler file.close(); delete filename, delete str;
Die Fehlermeldungen:
Der linke Teil von '.size' muss eine Klasse/Struktur/Union sein
Der linke Teil von '.size' muss eine Klasse/Struktur/Union sein
C:error C2676: Binaerer Operator '>>' : 'class std::basic_ofstream >' definiert diesen Operator oder eine Konvertierung in einen fuer den vordefinierten Operator geeigneten Typ nichtVielen Dank im voraus.
mfg crypt
-
str ist ein char* da gibts keine size() methode weil es ja nichtmal ne klasse ist...
-
Danke für deine schnelle Antwort.
Nun würde ich gerne wissen, wie ich das Programm umschreiben müsste, damit es lauffähig wird.mfg crypt
-
file >> str; //Fehler
Das ist Quatsch, da file als ofstream deklariert ist, du kannst nur Text IN die Datei schreiben:
file << str; // das ginge
Und size() kannst du natürlich auch nicht benutzen. Da musst du schon mit den alten C-Funktionen Vorlieb nehmen (schau mal nach strlen). Oder benutz gleich std::string
Wenn du noch Genaueres wissen willst, musst du wohl noch etwas mehr Code zeigenMfg, smasher1985