Простая программа шифрования / дешифрования с использованием карт - PullRequest
1 голос
/ 02 октября 2019

Я должен написать простую программу, которая использует две карты для шифрования / дешифрования строки «Hello World». Данные для карты шифрования задаются аргументом командной строки. Я успешно поместил данные из файла словаря в карту, и у меня также есть готовая карта дешифрования. Однако я не могу понять, как заставить программу правильно выполнять шифрование. Мой вывод должен быть «Fuggy, typegq» с учетом словаря шифрования, который показан после моего кода. Формат первого символа открытого текста сопоставляется со вторым символом зашифрованного текста. Вывод, который я получаю, является пустым пространством для «H» в Hello World, за которым следует «ibbv dvwbc». Я почти уверен, что это пустое место, потому что мой словарь содержит только строчные буквы. Как я могу улучшить свой код, чтобы получить правильный вывод?

#include<iostream>
#include<fstream>
#include<map>
#include<cctype>
#include <string>
using namespace std;

int main(int argc, char *argv[]){

map<char, char> encryptDictionary;
map<char, char> decryptDictionary;
string dictionaryString;
string encryptThis = "Hello world";
fstream file;
int size = encryptThis.size();

file.open(argv[1]);

//Populates encryption dictionary map
while (file >> dictionaryString){
   encryptDictionary[dictionaryString[0]] = dictionaryString[1];
}

//Populates decryption dictionary map
 for(auto itr = encryptDictionary.begin(); itr !=encryptDictionary.end(); itr++){
       decryptDictionary [ itr -> second] = itr -> first;
       }


for (int i = 0; i < size; i++){
for (auto itr = encryptDictionary.begin(); itr !=encryptDictionary.end(); itr++) {

   encryptThis[i] = (encryptDictionary.find(encryptThis[i])->second);

}
}

  cout << encryptThis;
  file.close();
return 0;
}

Это словарь, предоставленный

an
bx
cs
dq
eu
fk
gj
hf
iz
jm
ko
lg
mw
ni
oy
pl
qa
rp
sr
tb
ud
vh
wt
xe
yv
zc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...