此函数将字符串作为参数,然后对数字进行加密,并将加密的字符串写入文件。主要的eText似乎没有得到任何功能,我无法弄清楚为什么。
功能定义:
string Encipherer::encipherer(string plainMessage){
int i = plainMessage.length();
string eMessage;
cout << i << endl;
for(i = 0; i >= plainMessage.length(); i++){
if(plainMessage[i] >= 65 && plainMessage[i] <= 90){
if(plainMessage[i] + shift > 90){
eMessage[i] += plainMessage[i] - 26 + shift;
}
else{
eMessage += plainMessage[i] + shift;
}
}
else if(plainMessage[i] >= 97 && plainMessage[i] <= 122){
if(plainMessage[i] + shift > 122){
eMessage[i] += plainMessage[i] - 26 + shift;
}
else{
eMessage += plainMessage[i] + shift;
}
}
}
else{
eMessage += plainMessage[i];
}
}
return eMessage;
}
主要功能:
int main(){
string plainMessage, eText;
string fileName = "inputText.txt";
ofstream outputText;
outputText.open ("outputText.txt");
Encipherer E(5);
plainMessage = E.encipherFromFile(fileName);
eText = E.encipherer(plainMessage);
outputText << eText;
outputText.close();
return 0;
}
提前致谢!
答案 0 :(得分:0)
在Encipherer::encipherer
for(i = 0; i >= plainMessage.length(); i++){
应该是
for(i = 0; i < plainMessage.length(); i++){
此外,在两个if块中:
eMessage[i] += plainMessage[i] - 26 + shift;
应该成为
eMessage += plainMessage[i] - 26 + shift;
是否在其他地方定义了shift
?如果代码被正确复制,您似乎在最后}
之前有一个else
,不应该存在。