現在、代替暗号化/復号化プログラムを作成しようとしています。このプログラムはファイルから読み込み、与えられたキーに基づいて文字ごとに暗号化します。たとえば、ファイルが "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