Это криптографическая программа, которая предположительно t шифрует и расшифровывает сообщение с использованием шифрования rot13. Когда я запускаю программу, она выплевывает кучу бессмыслицы, а затем говорит мне, что программа «перестала работать».Программа C++ не будет работать правильно
#include <iostream>
using namespace std;
char lookup(bool, char);
class Cipher{
public:
string encrypt(string);
string decrypt(string);
};
string Cipher::encrypt(string text) {
return text;
}
string Cipher::decrypt(string text) {
return text;
}
class Rot13: public Cipher {
public:
string encrypt(string);
string decrypt(string);
};
string Rot13::encrypt(string text) {
string modstring;
for(int i=0;i<text.length();i++) {
modstring+=lookup(true,text[i]);
}
return modstring;
}
string Rot13::decrypt(string text) {
string modstring;
for(int i=0;i<text.length();i++) {
modstring+=lookup(false,text[i]);
}
return modstring;
}
char lookup(bool b, char c) {
string norm = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
string rot13 = "NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm";
if (c==' ')
return c;
if(b){
for(int i=0;i<52;i++) {
if(norm[i]==c)
return rot13[i];
}
}
else {
for(int i=0;i<52;i++) {
if(rot13[i]==c)
return norm[i];
}
}
}
string encrypt_with(Cipher *cipher, string text) {
cipher->encrypt(text);
}
string decrypt_with(Cipher *cipher, string text) {
cipher->decrypt(text);
}
int main(){
string s = "The quick brown fox jumped over the lazy dog";
Rot13 *rot13;
rot13 = new Rot13;
string d = encrypt_with(rot13,s);
string e = decrypt_with(rot13,d);
cout << d << endl;
cout << e << endl;
return 0;
}
Пожалуйста, прочтите [Как отлаживать небольшие программы] (http://ericlippert.com/2014/03/05 /, как в отладке-маленьких-программы /). – honk