home *** CD-ROM | disk | FTP | other *** search
- #include <fstream.h>
- #include <stdlib.h>
- #include <string>
-
- 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();
- }
-