我需要通过将每个字符加1来加密一个简单的文本文件,即'a'变为'b','b'变为'c'等等,'z'变为'a'。
我按照下面的代码完成了这个,虽然我的大部分输出都是正确的,但在每个文件的末尾似乎都有问题。
例如,当输入文件包含'a b c d'时,生成的输出是'b c d ef',而不是应该是'b c d e'的答案。我似乎无法弄清楚这一点。
这是我的加密功能代码:
src
答案 0 :(得分:-1)
使用这种方式可以实现移位密码:
while(!in_stream.eof()) {
if (letter>='a' && letter<='Z')
letter = (letter+1)%'Z' + 'a';
out_stream << letter;
}
减少代码中的冗余并使其尽可能紧凑,代码中有许多无用的条件。
主要逻辑在于加密来自... Z的字符,你无法预测文本文件中的其他字符,如\ n \ 0等,所以它们根本不应该被处理。
答案 1 :(得分:-1)
我可以推荐这段代码
while(!in_stream.eof()) {
if ((letter>='A' && letter<='Y')|| (letter>='a' && letter<='y'))
letter = (letter+1);
else if(letter== 'Z' || letter== 'z')
letter =(letter-25);
out_stream << letter;
}