I have this code which I have put into visual studio 2010...It keeps asking me t
ID: 3647910 • Letter: I
Question
I have this code which I have put into visual studio 2010...It keeps asking me to enter the name of my file I wish to encrypt. I input the file name and get this...what am i doing wrong.. I have even saved the notepad file to my student account when i open visual studio.....someone...Please Help! Here is the code...
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void mapitE(string,char[]);
void mapitD(string,char[]);
void encryptdecrypt(const string,const char[],int,string&);
int main()
{string ende[]={"encrypt","decrypt"},buffer,key,newbuffer="";
char filename[80],enmap[128],demap[128],again;
int i,maplength;
ofstream out;
ifstream in;
int choice;
do
{
cout<<"Enter 1 to encrypt, 2 to decrypt: ";
cin>>choice;
while(choice<1||choice>2)
{cout<<"invalid choice ";
cout<<"Enter 1 to encrypt, 2 to decrypt: ";
cin>>choice;
}
cout<<"Enter name of your file to "<<ende[choice-1]<<": ";
cin>>filename;
in.open(filename);
if(in.fail())
{ cout<<"input file did not open please check it ";
system("pause");
return 1;
}
cout<<"Enter name of your output file: ";
cin>>filename;
out.open(filename);
cout<<"Enter your encryption key (max 128 characters): ";
cin>>key;
if(key.length()>128)
{cout<<"key too long ";
cout<<"Enter your encryption key (max 128 characters): ";
cin>>key;
}
maplength=key.length();
if(choice==1)
mapitE(key,enmap);
else
mapitD(key,demap);
getline(in,buffer);
while(in)
{
if(choice==1)
encryptdecrypt(buffer,enmap,maplength,newbuffer);
else
encryptdecrypt(buffer,demap,maplength,newbuffer);
out<<newbuffer;
newbuffer.erase(0);
getline(in,buffer);
}
out.close();
in.close();
in.clear();
out.clear();
newbuffer.erase(0);
cout<<"do it again(y/n)? ";
cin>>again;
}while(toupper(again)=='Y');
return 0;
}
void encryptdecrypt(const string buffer,const char map[],int len,string& newbuffer)
{int i=0;
char t,code;
for(i=0;i<buffer.length();i++)
{ //cout<<buffer[i]<<" "<<i<<endl;
if(isalpha(buffer[i]))
{if(islower(buffer[i]))
code='a';
else
code='A';
t=buffer[i]-code;
//cout<<code<<" "<<buffer[i]<<" "<<t<<" "<<i<<endl;
t=t+map[i%len];
t=t&;
t=t+code;
newbuffer.push_back(t);
}
else
newbuffer.push_back(buffer[i]);
}
newbuffer.push_back(' ');
}
void mapitE(string key,char map[])
{
int i;
for(i=0;i<key.length();i++)
map[i]=key[i]-'a';
}
void mapitD(string key,char map[])
{
int i;
for(i=0;i<key.length();i++)
map[i]=26-(key[i]-'a');
}