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.