Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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');

}

Explanation / Answer

#include #include #include 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 { coutchoice; while(choice2) {cout