현재 대체 암호화/암호 해독 프로그램을 만들고자 시도 중입니다. 이 프로그램은 파일에서 읽고 사용자가 지정한 키를 기반으로 문자를 암호화합니다. 예를 들어 파일에 "ATTACK AT DAWN"이 있고 주어진 키가 "LEMON"이면 결과 암호 텍스트는 "LXFOPV EF RNHR"이됩니다.대체 암호화가 문자를 반환하지 않음
나는 암호화 기능을 만들었지 만 값을 영숫자가 아닌 문자로 변경합니다. 어떤 도움을 주시면 감사하겠습니다. 나는 기능 아래에 붙여 넣은 :
void encrypt(ifstream& in_s, ofstream& out_s, char next, char& cypher, int& i, char key[])
{
in_s.get(next); // get character from file
while (!in_s.eof())
{
check_i(i); // check i value is within the constraint for key[4]
if(isupper(next)) // if uppercase run cypher
{
cypher = ((next - 65) + (key[i] - 65) % 26) + 65;
}
else if (islower(next))
{
next = toupper(next); // change to upper
cypher = ((next - 65) + (key[i] - 65) % 26) + 65;
cypher = tolower(cypher); // change to lower
}
else // if blank do nothing
{
cypher = next;
}
cout << cypher;
in_s.get(next); // get next char
i++; // add 1 to i for key[i]
}
}
아 내가 볼! 의견을 보내 주셔서 감사합니다. 나는 "암호화 된"문자가 여전히 모든 영숫자가 아니지만 그것을 고쳤습니다. 내 핵심 기능에 문제가있을 수 있다고 생각합니다. –
프로그램의 _actual_ 출력을 보여주지 않았고'check_i' 함수의 정의를 보여주지 않았기 때문에 논평하기가 어렵습니다. – paddy