何が起こっているのかわかりません。プログラムを数回コンパイルしましたが、すべてうまくいきました。しかし、挿入したので#include <unordered_map>
、「cout で宣言されていない識別子... getline のオーバーロードされた関数のインスタンスがありません」などのエラーが発生します。私は Visual Studio 10 を使用しています。また、誰かが を適切に初期化する方法を教えてくれればunordered_map
、それは素晴らしいことです。
#include "stdafx.h"
#include<string>
#include <iostream>
#include <sstream>
#include <unordered_map>
using namespace std;
unordered_map<string, dictionary * > Mymap;
int _tmain(int argc, _TCHAR* argv[])
{
string option;
string pass;
int choice=0;
unsigned char hash[20];
char hex_str[41];
while(choice!=4)
{
cout<< "Select an option:"<< endl;
cout<<"1. Basic Hashing"<<endl;
cout<<"2. Load Dictionary"<<endl;
cout<<"3. Decrypt"<<endl;
cout<<"4. Exit" <<endl;
getline(cin,option);
stringstream(option) >> choice;
if(choice == 1)
{
cout<<"Please enter a sample password"<<endl;
getline(cin,pass);
const char * c= pass.c_str();
sha1::calc(c,pass.length(), hash);
sha1::toHexString(hash,hex_str);
cout<<endl;
cout<<"Hashed: "<< hex_str<<endl;
}
else if(choice ==2)
{
string answer;
cout<<"Would you like to use the default dictionary file(d8.txt). Press y or n"<<endl;
getline(cin,answer);
}
}
return 0;
}