Тема: допоможіть з дешифровкою
Шифр Цезаря. Як зробити,щоб результат шифрування зберігався і з нього робилося дешифрування?
#include "stdafx.h"
#include <iostream>
#include <string>
#include <conio.h>
#include <stdlib.h>
#include <sstream>
#include <fstream>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int k;
int shift;
string result = "";
cout<<"Выберите 1 для шифрования или 2 для дешифрования\n";
cin>>k;
switch (k)
{
case 1:
{
cout<<"Введите значение сдвига для шифрования\n";
cin>>shift;
if (shift > 26)
shift = shift % 26;
setlocale(LC_ALL,"Russian");
string s;
ifstream in("Test.txt");
getline(in,s);
cout<<"Текст: \n"<<s<<endl;
in.close();
for (int i = 0; i < s.length(); i++)
{
if (((int)(s[i]) < 65)||((int)(s[i]) > 122))
result += s[i];
if (((int)(s[i]) >= 97) && ((int)(s[i]) <= 122))
{
if ((int)(s[i]) + shift > 122)
result += (char)((int)(s[i]) + shift - 26);
else
result += (char)((int)(s[i]) + shift);
}
if (((int)(s[i]) >= 65) && ((int)(s[i]) <= 90))
{
if ((int)(s[i]) + shift > 90)
result += (char)((int)(s[i]) + shift - 26);
else
result += (char)((int)(s[i]) + shift);
}
}
cout<<"Результат:\n";
cout<<result;
break;
}
case 2:
{
cout<<"Введите значение сдвига для расшифровки\n";
cin>>shift;
if (shift > 26)
shift = shift % 26;
setlocale(LC_ALL,"Russian");
string s;
ifstream in("Test.txt");
getline(in,s);
cout<<"Текст: \n"<<s<<endl;
in.close();
for (int i = 0; i < s.length(); i++)
{
if (((int)(s[i]) < 65)||((int)(s[i]) > 122))
result += s[i];
if (((int)(s[i]) >= 97) && ((int)(s[i]) <= 122))
{
if ((int)(s[i]) - shift < 97)
result += (char)((int)(s[i]) - shift + 26);
else
result += (char)((int)(s[i]) - shift);
}
if (((int)(s[i]) >= 65) && ((int)(s[i]) <= 90))
{
if ((int)(s[i]) - shift < 65)
result += (char)((int)(s[i]) - shift + 26);
else
result += (char)((int)(s[i]) - shift);
}
}
cout<<"Результат:\n";
cout<<result;
break;
}
default:
{
cout<<"Error value\n";
break;
}
}
_getch();
return 0;
}