Fehler im Code!



  • Hi,
    Bin noch neu in C++ und habe mal etwas ausprobiert!
    Möchte das eine .txt datei zeile für zeile eingelesen wird und dann mit dem md5 Header vergelicht!
    Code:

    #include <iostream>
    #include <fstream>
    #include "md5.h"
    using namespace std;
    int main(int argc, char* argv[]) {
    char hash;
    char pass[256];
    char s_1;
    FILE * Data;
    cout << "Bitte geben sie den Hash-Wert ein:" << endl;
    cin >> hash;
    cout << "Geben sie den absoluten Pfad zur Passwortliste ein:" << endl;
    cin >> pass;
    Data = fopen(pass, "r");
    while ((fscanf(Data,"\n",s_1)) != EOF)
    {
    if(hash == md5(s_1) 
    { cout << "Your Password is: " << s_1 << endl; }
    }
    fclose(Data);                     
    }
    

    Leider kommt folgende Fehlermeldung:

    .\main.cpp(11) : error C2679: Binärer Operator '>>': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich)
    C:\Programme\Microsoft Visual Studio 8\VC\include\istream(995): kann 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char *)' sein
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]........

    Da ich noch neu bin hab ich leider keine Ahnung was ich falsch gemacht habe!
    Habe es in der Visual C++ 2005 Express Edition IDE geschrieben!

    MFG ReduX 😕



  • ReduX schrieb:

    ...

    ...
    char hash;
    ...
    cin >> hash;
    ...
    

    ...

    Soll der Hash wirklich nur ein byte lang sein ?
    Dann: Warum verzichtest Du nicht ganz auf C und nutzt komplett die C++-Möglichkeiten ?
    Wenn Du std::string statt char[] und std::ifstream statt FILE* (und Co) verwendest, hast Du Vieles leichter und sicherer.

    Gruß,

    Simon2.


Anmelden zum Antworten