Witam, postanowiłem machnąć sobie program do szyfrowania liter w zdaniach. I teraz tak.
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <string>
using namespace std;
void klucz1()
{
cout << "Wpisz wyraz: ";
int i;
string napis;
getline(cin,napis);
cout << endl;
for(i=0; i<napis.length(); i++)
{
if(napis[i]=='a')
napis[i]='b';
else if(napis[i]=='b')
napis[i]='c';
else if(napis[i]=='c')
napis[i]='d';
else if(napis[i]=='d')
napis[i]='e';
else if(napis[i]=='e')
napis[i]='f';
else if(napis[i]=='f')
napis[i]='g';
else if(napis[i]=='g')
napis[i]='h';
else if(napis[i]=='h')
napis[i]='i';
else if(napis[i]=='i')
napis[i]='j';
else if(napis[i]=='j')
napis[i]='k';
else if(napis[i]=='k')
napis[i]='l';
else if(napis[i]=='l')
napis[i]='m';
else if(napis[i]=='m')
napis[i]='n';
else if(napis[i]=='n')
napis[i]='o';
else if(napis[i]=='o')
napis[i]='p';
else if(napis[i]=='p')
napis[i]='q';
else if(napis[i]=='q')
napis[i]='r';
else if(napis[i]=='r')
napis[i]='s';
else if(napis[i]=='s')
napis[i]='t';
else if(napis[i]=='t')
napis[i]='u';
else if(napis[i]=='u')
napis[i]='v';
else if(napis[i]=='v')
napis[i]='w';
else if(napis[i]=='w')
napis[i]='x';
else if(napis[i]=='x')
napis[i]='y';
else if(napis[i]=='y')
napis[i]='z';
else if(napis[i]=='z')
napis[i]='a';
}
for(i=0; i<napis.length(); i++)
{
cout << napis[i];
}
}
int main()
{
char k;
while (k != 'q')
{
int a;
cout << "Przedstawiam program, ktory jest w stanie zaszyfrowac tekst na 25 sposobow.";
cout << "\nWybierz sposob szyfrowania wpisujac liczby od 1 do 25: ";
cin >> a;
if(a==1){
klucz1();
}
else
cout << "Liczba spoza zakresu";
cout << endl << endl;
cout << "Nacisnij przycisk 'q' aby zakonczyc lub nacinij 'Enter', aby policzyc ponownie" << endl << endl;
k = getch();
system("cls");
}
}
Cały program ma około 1800 linijek (szyfruje na 25 sposobów), ale problem można wytłumaczyć na tym małym wycinku. Otóż, kiedy próbuję stworzyć konkretnie ten warunek...
cin >> a;
if(a==1){
klucz1();
}
else
cout << "Liczba spoza zakresu";
...to, program zamiast wrzucić w miejsce klucz1(); całą funkcję, którą klucz1(); zawiera, kończy go , po czym mogę wcisnąć dowolny klawisz, aby zacząć od początku, bądź wyłączyć. Warunek jest tutaj konieczny, gdyż w jakiś sposób muszę wybrać metodę kodowania, więc jak go zrobić, żeby śmigał?
Sam sposób szyfrowania jest troszkę długi i łopatologiczny, ale koncepcja jest dobra, potrzeba mi tylko sposobu na ten warunek. Z góry dzięki za pomoc.