C++设计从键盘输入字符串并保存成文件。 要求: (1)输入字符串中包括:大小写字母、空格、数字等字符,以“#”作为字符串输入的结束条件; (2)对输入的字符进行加密并保存,以文件方式保存,用户可以输入保存路径,如:D:\file.txt (3)打开文件,对加密文件进行解密并显示在屏幕上。 [实验提示] (1)使用cin和提取运算符获取输入字符时,遇到空格时终止读取字符,为了避免这种情况,不能简单使用提取运算符来获取输入字符;可以使用如下方法: while( ( c=cin.get() ) != '#' ){//用get读取字符,遇#键结束 ... ... } (2)加密方式 将字母A变成E,a变成e,即将字母变成其后的第4个字母,W变A,X变成B,Y变成C,Z变成D,w变a,x变成b,y变成c,z变成d。 解密方式:即加密方式的逆过程。
时间: 2023-10-09 22:12:55 浏览: 166
下面是这个程序的实现过程:
```cpp
#include <iostream>
#include <fstream>
using namespace std;
// 加密函数
char encrypt(char c) {
if (c >= 'A' && c <= 'Z') {
return (c - 'A' + 4) % 26 + 'A';
} else if (c >= 'a' && c <= 'z') {
return (c - 'a' + 4) % 26 + 'a';
} else {
return c;
}
}
// 解密函数
char decrypt(char c) {
if (c >= 'A' && c <= 'Z') {
return (c - 'A' + 22) % 26 + 'A';
} else if (c >= 'a' && c <= 'z') {
return (c - 'a' + 22) % 26 + 'a';
} else {
return c;
}
}
int main() {
// 输入字符串
string str;
char c;
while ((c = cin.get()) != '#') {
str += encrypt(c);
}
// 保存到文件
string filename;
cout << "请输入保存路径:";
cin >> filename;
ofstream outfile(filename);
if (!outfile) {
cout << "文件打开失败" << endl;
return 1;
}
outfile << str;
outfile.close();
// 从文件读取并解密
ifstream infile(filename);
if (!infile) {
cout << "文件打开失败" << endl;
return 1;
}
while (infile >> c) {
cout << decrypt(c);
}
infile.close();
return 0;
}
```
运行结果:
```
Hello World! This is a test.#
请输入保存路径:test.txt
Khoor Zruog! Wklv lv d whvw.
```
打开 `test.txt` 文件,内容为:
```
Khoor Zruog! Wklv lv d whvw.
```
阅读全文