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 nicht

    Vielen 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 zeigen

    Mfg, smasher1985


Anmelden zum Antworten