#include
#include
#include
char filename[255];
string buffer1, buffer2;
int n_lettere, scelta;
fstream orig;
fstream dest;
void crypto(), decrypto();
void main()
{
cout<<"Benveuto in Crypto, di Cristiano Calabro'"<<endl;
cout<<"Vuoi: \t1 => criptare \n\t2 => decriptare"<<endl;
cout<<"\n\tScelta => ";
cin>>scelta;
switch(scelta)
{
case 1:
crypto(); break;
case 2:
decrypto(); break;
}
system("PAUSE");
}
void crypto()
{
cout<<"\n\nInserisci il nome del file da aprire (comprensivo di estensione) => ";
cout<<"\n\tNome del file => ";
cin>>filename;
orig.open(filename, ios::in);
dest.open("crypted.dat", ios::out);
if (!orig)
cout<<"Errore nell'apertura del file"<<endl;
else
{
orig.seekg(ios::beg); //posiziono il puntatore all'inizio del file
while(!orig.eof())
{
orig>>buffer1; //carico in buffer la prima parola n_lettere=buffer1.size(); //n_lettere Θ un intero che contiene la quantitα di lettere della parola
n_lettere=buffer1.size(); //n_lettere Θ un intero che contiene la quantitα di lettere della parola
/* Segue il cuore del prgramma */
for (int i=n_lettere-1; i>=0; i--) //mi muovo di carattere in carattere a ritroso
{
buffer2[(n_lettere-1)-i]=buffer1[i]+n_lettere; //Scrivo in buffer2 il caratteri traslati di n_lettere e ruotati di n_lettere_posizioni
dest<<buffer2[(n_lettere-1)-i];
}
dest<<" ";
};
/* Termine del cuore del programma */
cout<<"File criptato con successo!"<<endl;
}
orig.close();
dest.close();
}
void decrypto()
{
orig.open("crypted.dat", ios::in);
cout<<"Inserisci il nome del file sul quale scrivere (sara' di tipo tuonome.txt) => ";
cout<<"\n\tNome del file => ";
cin>>filename;
strcat(filename,".txt");
dest.open(filename, ios::out);
if (!orig)
cout<<"Errore nell'apertura del file"<<endl;
else
{
orig.seekg(ios::beg); //posiziono il puntatore all'inizio del file
do
{
orig>>buffer1; //carico in buffer la prima parola n_lettere=buffer1.size(); //n_lettere Θ un intero che contiene la quantitα di lettere della parola
n_lettere=buffer1.size(); //n_lettere Θ un intero che contiene la quantitα di lettere della parola
/* Segue il cuore del prgramma */
for (int i=n_lettere-1; i>=0; i--) //mi muovo di carattere in carattere a ritroso
{
buffer2[(n_lettere-1)-i]=buffer1[i]-n_lettere; //Scrivo in buffer2 il caratteri traslati di n_lettere e ruotati di n_lettere_posizioni
dest<<buffer2[(n_lettere-1)-i];
}
dest<<" ";
}while(!orig.eof());
/* Termine del cuore del programma */
cout<<"File decriptato con successo!"<<endl;
}
orig.close();
dest.close();
}
|