algorytm.org

Implementacja w C/C++



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Szyfr AtBash - Implementacja w C/C++
Ocena użytkownikóww: *****  / 9
SłabyŚwietny
Nadesłany przez Krzysztof Maćkowiak, 17 sierpnia 2005 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

atbash_c/AtBash.CPP:
//Program szyfrujacy\deszyfrujacy tekst znajdujacy sie w pliku za pomoca algorytmu AtBash 
//Program pobrano ze strony www.algorytm.org
//Opracowal Krzysztof Mackowiak

#include<stdio.h>
#include<iostream.h>
#include <math.h>

void main()
{
FILE *we, *wy;
char znak;                   //znak odczytany z pliku
//Przed uruchomieniem programu nalezy utworzyc 2 pliki - 1. z tekstem jawnym, 2. pusty na t.zaszyfrowany
char plik_jawny[20];         //nazwa pliku z tekstem jawnym
char plik_zaszyfrowany[20];  //nazwa pliku z tekstem zaszyfrownym
cout<<"Podaj nazwe pliku, ktorego tresc ma zostac zaszyfrowana/odszyfrowana: " ;
cin>>plik_jawny;             //pobranie nazwy pliku jawnego 
cout<<"Podaj nazwe pliku wynikowego: ";
cin>>plik_zaszyfrowany;      //pobranie nazwy pliku zaszyfrowanego
if((we=fopen(plik_jawny,"rb"))!=NULL)    //otwieranie pliku 1. do odczytu - w przypadku gdy takiego pliku nie ma program nie wykona sie
{
if((wy=fopen(plik_zaszyfrowany,"wb"))!=NULL)  //otwieranie pliku 2. do zapisu  - w przypadku gdy takiego pliku nie ma program nie wykona sie
{
   while((znak=getc(we))!=EOF)   //pobieranie znaku z pliku 1. tak dlugo az nie nastapi znak konca pliku
   //Kazdy odczytywany znak wg kodow ASCII jest przydzielany do 2 grup duze litery, male litery
	  {
                if ((znak>=65)&&(znak<=90))
                     {
			znak-=65;
			znak=25-znak;   //w tej chwili litera a to 0 wiec skoro alfabet posiada 26 liter zatem litera z to 25
			znak+=65;
			putc(znak,wy);
                     }
                 else if ((znak>=97)&&(znak<=122))
                     {
		        znak-=97;
                        znak=25-znak;
			znak+=97;
			putc(znak,wy);
                     }
		 
      }
fclose(wy);	//zamykanie pliku wyjsciowego
 }
fclose(we);     //zamykanie pliku wejsciowego
 }
cout<<"Operacja zostala zakonczona";
return;
}
Dodaj komentarz