我需要通過將每個字符遞增1來加密一個簡單的文本文件,即'a'變成'b','b'變成'c'等,'z'變成'a' 。通過遞增字符來加密文本文件
我已經按照下面的代碼完成了這項工作,雖然我的大部分輸出都是正確的,但似乎在每個文件的末尾都有問題。
例如,當輸入文件包含'a b c d'時,生成的輸出是'b c d ef',而不是應該是'b c d e'的答案。我似乎無法弄清楚這一點。
這是我的加密功能代碼:可以使用這種方式可以實現
void encrypt(char* inFileName, char* outFileName) {
out_stream.open(outFileName);
in_stream.open(inFileName);
if(in_stream.fail()) {
cout << "Failed to open input file." << endl;
exit(1);
}
else {
while(!in_stream.eof()) {
in_stream.get(letter);
if (letter == 'z') {
letter = 'a';
}
if (letter == 'Z') {
letter = 'A';
}
if (letter == ' ') {
letter = letter;
}
else {
letter = letter + 1;
}
out_stream << letter;
}
}
}
的可能的複製[爲什麼的iostream :: EOF算錯了一個循環條件裏面?](https://stackoverflow.com/questions/5605125/why- (in_stream.eof())break;'in_stream.get(letter);' – 4386427
只適用於最後的條件?這對你的代碼應該沒問題,但是會讓它更難理解。 – 4386427
你知道其他的是(if-in-loop-condition-wrong-wrong) – Lefsler