home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 80 / IOPROG_80.ISO / tips / C++ / crypto1.cpp
Encoding:
C/C++ Source or Header  |  2004-03-29  |  2.8 KB  |  102 lines

  1. #include <fstream.h>
  2. #include <stdlib.h>
  3. #include <string>
  4.  
  5.  char filename[255];
  6.  string buffer1, buffer2;
  7.  int n_lettere, scelta;
  8.  
  9.  fstream orig;
  10.  fstream dest;
  11.  
  12.  void crypto(), decrypto();
  13.  
  14. void main()
  15. {
  16.  
  17.  cout<<"Benveuto in Crypto, di Cristiano Calabro'"<<endl;
  18.  cout<<"Vuoi: \t1 => criptare \n\t2 => decriptare"<<endl;
  19.  cout<<"\n\tScelta => ";
  20.  cin>>scelta;
  21.  
  22.  switch(scelta)
  23.  {
  24.   case 1:
  25.    crypto(); break;
  26.  
  27.   case 2:
  28.    decrypto(); break;
  29.   }
  30.  
  31.  system("PAUSE");
  32. }
  33.  
  34. void crypto()
  35. {
  36.   cout<<"\n\nInserisci il nome del file da aprire (comprensivo di estensione) => ";
  37.   cout<<"\n\tNome del file => ";
  38.   cin>>filename;
  39.  
  40.   orig.open(filename, ios::in);
  41.   dest.open("crypted.dat", ios::out);
  42.  
  43.   if (!orig)
  44.     cout<<"Errore nell'apertura del file"<<endl;
  45.    else
  46.    {
  47.     orig.seekg(ios::beg); //posiziono il puntatore all'inizio del file
  48.     while(!orig.eof())
  49.     {
  50.     orig>>buffer1; //carico in buffer la prima parola  n_lettere=buffer1.size(); //n_lettere Θ un intero che contiene la quantitα di lettere della parola
  51.     n_lettere=buffer1.size(); //n_lettere Θ un intero che contiene la quantitα di lettere della parola
  52.  
  53.   /* Segue il cuore del prgramma */
  54.      for (int i=n_lettere-1; i>=0; i--) //mi muovo di carattere in carattere a ritroso
  55.      {
  56.       buffer2[(n_lettere-1)-i]=buffer1[i]+n_lettere; //Scrivo in buffer2 il caratteri traslati di n_lettere e ruotati di n_lettere_posizioni
  57.       dest<<buffer2[(n_lettere-1)-i];
  58.      }
  59.      dest<<" ";
  60.     };
  61. /* Termine del cuore del programma */
  62.    cout<<"File criptato con successo!"<<endl;
  63.    }
  64.  orig.close();
  65.  dest.close();
  66. }
  67.  
  68. void decrypto()
  69. {
  70.   orig.open("crypted.dat", ios::in);
  71.   cout<<"Inserisci il nome del file sul quale scrivere (sara' di tipo tuonome.txt) => ";
  72.   cout<<"\n\tNome del file => ";
  73.   cin>>filename;
  74.   strcat(filename,".txt");
  75.  
  76.   dest.open(filename, ios::out);
  77.  
  78.   if (!orig)
  79.     cout<<"Errore nell'apertura del file"<<endl;
  80.     else
  81.     {
  82.     orig.seekg(ios::beg); //posiziono il puntatore all'inizio del file
  83.      do
  84.      {
  85.      orig>>buffer1; //carico in buffer la prima parola  n_lettere=buffer1.size(); //n_lettere Θ un intero che contiene la quantitα di lettere della parola
  86.      n_lettere=buffer1.size(); //n_lettere Θ un intero che contiene la quantitα di lettere della parola
  87.  
  88.   /* Segue il cuore del prgramma */
  89.      for (int i=n_lettere-1; i>=0; i--) //mi muovo di carattere in carattere a ritroso
  90.      {
  91.       buffer2[(n_lettere-1)-i]=buffer1[i]-n_lettere; //Scrivo in buffer2 il caratteri traslati di n_lettere e ruotati di n_lettere_posizioni
  92.       dest<<buffer2[(n_lettere-1)-i];
  93.      }
  94.      dest<<" ";
  95.      }while(!orig.eof());
  96. /* Termine del cuore del programma */
  97.    cout<<"File decriptato con successo!"<<endl;
  98.    }
  99.  orig.close();
  100.  dest.close();
  101. }
  102.