C++凯撒加密支持文件输入输出
时间: 2023-08-12 14:11:07 浏览: 95
是的,C++可以支持文件输入输出进行凯撒加密。
以下是实现文件加密的C++代码示例:
```cpp
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
string encrypt(string plain_text, int shift) {
string cipher_text = "";
for (char c : plain_text) {
if (isalpha(c)) {
char base = isupper(c) ? 'A' : 'a';
cipher_text += (c - base + shift) % 26 + base;
} else {
cipher_text += c;
}
}
return cipher_text;
}
void encrypt_file(string input_file, string output_file, int shift) {
ifstream fin(input_file);
ofstream fout(output_file);
if (!fin || !fout) {
cerr << "Failed to open file!" << endl;
return;
}
string line;
while (getline(fin, line)) {
fout << encrypt(line, shift) << endl;
}
fin.close();
fout.close();
}
int main() {
string input_file = "input.txt";
string output_file = "output.txt";
int shift = 3;
encrypt_file(input_file, output_file, shift);
return 0;
}
```
在这个示例中,我们通过 `encrypt` 函数来进行加密,然后通过 `encrypt_file` 函数来实现文件加密。其中,`encrypt_file` 函数需要输入两个文件名和一个加密位移值,它会将输入文件中的每一行进行加密,并将结果写入输出文件中。
你可以根据自己的需求来修改文件名和加密位移值。
阅读全文