However, I'm willing to give you the benefit of the doubt that it wasn't intentional, so I'll tell you what you appear to be missing.

Go to post 22, copy lines 5 through 23 from that post, and post them where line 7 is in your last post. See if that solves it. If it doesn't, I'm sorry, but I have no more time to spend on this thread. Read the links tux4life posted and try to take them to heart. You should mark this thread "solved" now. Feel free to start new threads on a new topic, but again, read the links and tux4life's comments and try to learn from them.

Good luck.

Agree

Dear Sir,
Thanks for guidence, i am Thankful to tux4life and VernonDozier, but grace of God and the help provided by you people i have reached to solution, by now i am able to encrypt and decrypt files with the program.

About 99% of the problem is solved, I am facing a little problem that if i encypt large files using program it encrypts and after decryption the about 6 to 7 lines are decrypted only.

i am sending the code so that somebody can help me solve the problem cent per cent.
let say we put the code of the following program in a text file
e.g
plain.txt

and we decrypt it
into cypher.txt

after decryption to another file let say plainout.txt
it only gives
#include <iostream>
#include <stdli
the whole code is not decrypted

``````#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <stdio.h>
using namespace std;
char encrypt (char c)
{
int a = c;
if (a < 0)
a = a + 256;
int b = a * 37;
char d = b % 200;
return d;
}

char decrypt (char c)
{
int a = c;
if (a < 0)
a = a + 256;
int b = a * 173;
char d = b % 200;
return d;
}
void doCrypt(char *cool)
{
int cryp;//the main int this function uses
char x;//to get the chars from the file
ifstream in;//the input stream
ofstream out;//the output stream
in.open(cool);//opening the input file
if(in.fail()){//check if it's not there
cout<<"Couldn't open the IN file\n";//if it's not, print
return;
}
cout<<"enter the OUT file name: ";//enter the output filename
cin>>cool;//get it
//cin.getline(cool, 20);
out.open(cool);//open the output file
//
if(!in.is_open())
return;
while(in.get(x)) {//while x is not beyong End Of File
//cryp=x-0xFACA;//the crypting
cryp = encrypt (x);
out<<(char)cryp;//print the crypted char
}
//
/* in.get(x);//get the first char of input
if(in.eof())//if read beyong end of file
return;//quit
while(x != EOF){//while x is not beyong End Of File
//cryp=(x*37)%200;//the crypting
cryp = encrypt (x);
out<<(char)cryp;//print the crypted char
in.get(x);//get another char
if(in.eof())//if read beyong end of file
break;
} */
in.close();
out.close();
return;
}
void deCrypt(char *daf)
{
int decr;//the main int
char x;//the input char
ifstream in;//input stream
ofstream out;//output stream
in.open(daf);//open the inout stream
if(in.fail()){//see if it's not there
cout<<"Error couldn't openn the IN file\n";//print
return;
}
cout<<"Enter the OUT file name: ";//ask for the out filename
cin>>daf;
out.open(daf);//open the outfile
//
if(!in.is_open())
return;
while(in.get(x)) {//while x is not beyong End Of File
//cryp=x-0xFACA;//the crypting
decr = decrypt (x);
out<<(char)decr;//print the crypted char
}
//
/*    in.get(x);//get the input char
if(in.eof())//if read beyong end of file
return;
while(x!=EOF){//while x is not beyong end of file
// decr=(x*173)%200;//the dectypring
decr = decrypt (x);
out<<(char)decr;
in.get(x);//get the next char
if(in.eof())//if read beyong the eon of file
break;
system("pause");
}   */
return;
}
int main(void)

{
/*
if (password()) cout << "Access Granted: \n";
else
{
cout << "You are not Authorized to use this program!\n";
system("pause");
return 0;
}
*/
char *cool=new char[20];//the name pointer

cout << "*---------------------------------------------*\n";
cout << "| This is an encryption program.  I'm not     |\n";
cout << "| taking credit for this.  This was a         |\n";
cout << "| recent submission on planet-source-code     |\n";
cout << "*---------------------------------------------*\n\n";
system("pause");
cout << "\n\n";
cout << "Use \"m\" for the Menu\n";//print instructions
while(true){
cin >> nav;
switch(nav){
case 'm':
cout << "COMMAND\tFUNCTION\n";
cout << "e      \tencrypt\n"
"d      \tdecrypt\n"
"q      \t quit \n";
break;
case 'e':
cout << "Enter the file name: \nExample: \"file\".txt\n";
cin >> cool;
//cin.getline(cool, 20);
doCrypt(cool);
break;
case 'd':
cout << "Enter the file name: ";
cin >> cool;
//cin.getline(cool, 20);
deCrypt(cool);
break;
case 'q':
exit(0);
break;
default:
cout << "I do not understand you!\n";
break;
}
}
}
/*
{
char string1[50];
cout << "Enter in the encryption password: \n";
//gets(string1);
cin.getline(string1, 50);
if (strcmp(string1, "outlaw")) return 0;
return 1;
}
*/``````

Any help will be appreciated

Could you provide us with the file you tried to encrypt/decrypt using your program?

Dear Sir,
Just make a file and paste the whole program in it.
I did the same and encrypted the file/test file containing the code.
the whole test in file was encrypted but it only derypt if two lines and second line is also incomplete.

Thanks!

the detail i have given in post 33

plaint.txt input plain text file
cypher.txt output encrypted/cyphered text
plainy.txt output decyphered/decrypted text which is not the same as first input file plaint.txt

hope this might help u understand the problem.

Edited by khanalone1: atttaching a file

Attachments
``````#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <stdio.h>
using namespace std;
char encrypt (char c)
{
int a = c;
if (a < 0)
a = a + 256;
int b = a * 37;
char d = b % 200;
return d;
}

char decrypt (char c)
{
int a = c;
if (a < 0)
a = a + 256;
int b = a * 173;
char d = b % 200;
return d;
}
void doCrypt(char *cool)
{
int cryp;//the main int this function uses
char x;//to get the chars from the file
ifstream in;//the input stream
ofstream out;//the output stream
in.open(cool);//opening the input file
if(in.fail()){//check if it's not there
cout<<"Couldn't open the IN file\n";//if it's not, print
return;
}
cout<<"enter the OUT file name: ";//enter the output filename
cin>>cool;//get it
//cin.getline(cool, 20);
out.open(cool);//open the output file
//
if(!in.is_open())
return;
while(in.get(x)) {//while x is not beyong End Of File
//cryp=x-0xFACA;//the crypting
cryp = encrypt (x);
out<<(char)cryp;//print the crypted char
}
//
/* in.get(x);//get the first char of input
if(in.eof())//if read beyong end of file
return;//quit
while(x != EOF){//while x is not beyong End Of File
//cryp=(x*37)%200;//the crypting
cryp = encrypt (x);
out<<(char)cryp;//print the crypted char
in.get(x);//get another char
if(in.eof())//if read beyong end of file
break;
} */
in.close();
out.close();
return;
}
void deCrypt(char *daf)
{
int decr;//the main int
char x;//the input char
ifstream in;//input stream
ofstream out;//output stream
in.open(daf);//open the inout stream
if(in.fail()){//see if it's not there
cout<<"Error couldn't openn the IN file\n";//print
return;
}
cout<<"Enter the OUT file name: ";//ask for the out filename
cin>>daf;
out.open(daf);//open the outfile
//
if(!in.is_open())
return;
while(in.get(x)) {//while x is not beyong End Of File
//cryp=x-0xFACA;//the crypting
decr = decrypt (x);
out<<(char)decr;//print the crypted char
}
//
/*    in.get(x);//get the input char
if(in.eof())//if read beyong end of file
return;
while(x!=EOF){//while x is not beyong end of file
// decr=(x*173)%200;//the dectypring
decr = decrypt (x);
out<<(char)decr;
in.get(x);//get the next char
if(in.eof())//if read beyong the eon of file
break;
system("pause");
}   */
return;
}
int main(void)

{
/*
if (password()) cout << "Access Granted: \n";
else
{
cout << "You are not Authorized to use this program!\n";
system("pause");
return 0;
}
*/
char *cool=new char[20];//the name pointer

cout << "*---------------------------------------------*\n";
cout << "| This is an encryption program.  I'm not     |\n";
cout << "| taking credit for this.  This was a         |\n";
cout << "| recent submission on planet-source-code     |\n";
cout << "*---------------------------------------------*\n\n";
system("pause");
cout << "\n\n";
cout << "Use \"m\" for the Menu\n";//print instructions
while(true){
cin >> nav;
switch(nav){
case 'm':
cout << "COMMAND\tFUNCTION\n";
cout << "e      \tencrypt\n"
"d      \tdecrypt\n"
"q      \t quit \n";
break;
case 'e':
cout << "Enter the file name: \nExample: \"file\".txt\n";
cin >> cool;
//cin.getline(cool, 20);
doCrypt(cool);
break;
case 'd':
cout << "Enter the file name: ";
cin >> cool;
//cin.getline(cool, 20);
deCrypt(cool);
break;
case 'q':
exit(0);
break;
default:
cout << "I do not understand you!\n";
break;
}
}
}
/*
{
char string1[50];
cout << "Enter in the encryption password: \n";
//gets(string1);
cin.getline(string1, 50);
if (strcmp(string1, "outlaw")) return 0;
return 1;
}
*/``````
``````#include <iostream>
#include <stdli``````

This won't fix your problem, but it will fix a memory leak:
if you write this in your code: `char *cool=new char[20];//the name pointer` then at some point in future your program doesn't need the memory anymore (for example just before your program terminates, is the memory still needed then? I guess not).
So you'll want to add this line at the end of your main() function: `delete[] cool;` , this line will free up the previously allocated memory :)

(And yes, I know: some operating systems free up/deallocate all the memory which was associated with the program, at the time when the program terminates, but it doesn't make the step of cleaning up the manually allocated resources unnessesary: not all OSes do offer you this feature, and not manually deallocating your allocated resources can result in a memory leak either when your program is running or even at the moment when your program isn't running anymore (in case your OS doesn't provide some kind of garbage collection))

So, moral of the story: when you manually allocate memory using new then always also manually deallocate it using delete (this will also ensure portability).

Edited by mvmalderen: fix some things

The main Problem in your code is that it replaces the letter "b" with the letter in UNICODE represented as "001A", which is the key to break the execution of the program.

``````#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <stdio.h>
using namespace std;
char encrypt (char c)
{
int a = c;
if (a < 0)
a = a + 256;
int b = a * 37;
char d = b % 200;
return d;
}

char decrypt (char c)
{
int a = c;
if (a < 0)
a = a + 256;
int b = a * 173;
char d = b % 200;
return d;
}
void doCrypt(char *cool)
{
int cryp;//the main int this function uses
char x;//to get the chars from the file
ifstream in;//the input stream
ofstream out;//the output stream
in.open(cool);//opening the input file
if(in.fail()){//check if it's not there
cout<<"Couldn't open the IN file\n";//if it's not, print
return;
}
cout<<"enter the OUT file name: ";//enter the output filename
cin>>cool;//get it
//cin.getline(cool, 20);
out.open(cool);//open the output file
//
if(!in.is_open())
return;
while(in.get(x)) {//while x is not beyong End Of File
//cryp=x-0xFACA;//the crypting
cryp = encrypt (x);
out<<(char)cryp;//print the crypted char
}
//
/* in.get(x);//get the first char of input
if(in.eof())//if read beyong end of file
return;//quit
while(x != EOF){//while x is not beyong End Of File
//cryp=(x*37)%200;//the crypting
cryp = encrypt (x);
out<<(char)cryp;//print the crypted char
in.get(x);//get another char
if(in.eof())//if read beyong end of file
break;
} */
in.close();
out.close();
return;
}
void deCrypt(char *daf)
{
int decr;//the main int
char x;//the input char
ifstream in;//input stream
ofstream out;//output stream
in.open(daf);//open the inout stream
if(in.fail()){//see if it's not there
cout<<"Error couldn't openn the IN file\n";//print
return;
}
cout<<"Enter the OUT file name: ";//ask for the out filename
cin>>daf;
out.open(daf);//open the outfile
//
if(!in.is_open())
return;
while(in.get(x)) {//while x is not beyong End Of File
//cryp=x-0xFACA;//the crypting
decr = decrypt (x);
out<<(char)decr;//print the crypted char
}
//
/*    in.get(x);//get the input char
if(in.eof())//if read beyong end of file
return;
while(x!=EOF){//while x is not beyong end of file
// decr=(x*173)%200;//the dectypring
decr = decrypt (x);
out<<(char)decr;
in.get(x);//get the next char
if(in.eof())//if read beyong the eon of file
break;
system("pause");
}   */
return;
}
int main(void)

{
/*
if (password()) cout << "Access Granted: \n";
else
{
cout << "You are not Authorized to use this program!\n";
system("pause");
return 0;
}
*/
char *cool=new char[20];//the name pointer

cout << "*---------------------------------------------*\n";
cout << "| This is an encryption program.  I'm not     |\n";
cout << "| taking credit for this.  This was a         |\n";
cout << "| recent submission on planet-source-code     |\n";
cout << "*---------------------------------------------*\n\n";
system("pause");
cout << "\n\n";
cout << "Use \"m\" for the Menu\n";//print instructions
while(true){
cin >> nav;
switch(nav){
case 'm':
cout << "COMMAND\tFUNCTION\n";
cout << "e      \tencrypt\n"
"d      \tdecrypt\n"
"q      \t quit \n";
break;
case 'e':
cout << "Enter the file name: \nExample: \"file\".txt\n";
cin >> cool;
//cin.getline(cool, 20);
doCrypt(cool);
break;
case 'd':
cout << "Enter the file name: ";
cin >> cool;
//cin.getline(cool, 20);
deCrypt(cool);
break;
case 'q':
exit(0);
break;
default:
cout << "I do not understand you!\n";
break;

}

}
delete[] cool;
}

/*
{
char string1[50];
cout << "Enter in the encryption password: \n";
//gets(string1);
cin.getline(string1, 50);
if (strcmp(string1, "outlaw")) return 0;
return 1;
}
*/``````

i have added delete[] cool; at the end of main function but didn't worked for me.

plz help!