Witam.
Mam program szyfrujący afinicznie wpisany tekst. Chciałbym go przerobić tak by wczytywał plik bajt po bajcie a następnie po wpisaniu dwóch kluczy kodowal go i zapisywał do pliku oraz by mógł dekodować wcześniej zakodowany plik.
Bardzo proszę o radę jak go przerobić i czy w ogóle da się to zrobić.
Proszę również o brak chamskich komentarzy. Dopiero się uczę dlatego pytam bardziej doświadczonych ludzi ode mnie, którym bardzo dziękuję za przejaw jakiejkolwiek pomocy.
#include<string.h>
#include<iostream.h>
void encode(int a, int b);
void uncode(int a, int b);
int getUncode(int a);
int main()
{
int a, b,c,d;
cout<<"Wprowadź klucze kodowania K(A,B)"<<endl;
cin>>a>>b;
c = getUncode(a);
d = -b;
cout<<"Twój klucz to K("<<c<<","<<d<<")"<<endl;
encode(a,b);
uncode(c,d);
return 0;
}
void encode(int a,int b)
{
int len=0,i=0,j=0,temp;
char s[1000];
char s1[1000];
cout<<"Wprowadź tekst do zakodowania"<<endl;
cout<<"(Uwaga! Wymagane małe litery i maksymalnie 1000 znaków.)"<<endl;
cin>>s;
len = strlen(s);
for(i = 0,j = 0;i<len;i++)
{
temp = (a*(s[i]-97)+b)%26;
if(temp<0) temp += 26;
s1[i]= temp +97;
}
s1[i]='\0';
cout<<"Zakodowany ciąg znaków:"<<endl;
cout<<s1<<endl;
}
void uncode(int a,int b)
{
int len=0,i=0,j=0;
char s[1000];
char s1[1000];
cout<<"Wprowadź tekst"<<endl;
cout<<"(Uwaga! Wymagane małe litery i maksymalnie 1000 znaków.)"<<endl;
cin>>s;
len = strlen(s);
for(i = 0,j = 0;i<len;i++)
s1[i]=(a*(s[i]-97)+b)%26+97;
s1[i]='\0';
cout<<"Zakodowany ciąg znaków:"<<endl;
cout<<s1<<endl;
}
int getUncode(int a)
{
int i,b;
for(i = 1; i<a;i++)
{
b = ( 26*i + 1 )/a;
if(( 26*i + 1 )%a==0)
return b;
SYSTEM("PAUSE");
}
}