从键盘输入字符串并保存成文件。要求: (1)输入字符串中包括:大小写字母、空格、数字等字符,以“#”作为字符串输入的结束条件; (2)对输入的字符进行加密并保存,以二进制文件方式保存,用户可以输入保存路径,
时间: 2024-03-08 11:47:18 浏览: 54
从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以“!”结束.
好的,让我来回答你的问题。
以下是实现要求的代码:
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <cstring>
using namespace std;
// 加密函数,将字符加1
char encrypt(char ch)
{
if (isalpha(ch)) {
if (ch == 'z') {
return 'a';
} else if (ch == 'Z') {
return 'A';
} else {
return ch + 1;
}
} else if (isdigit(ch)) {
if (ch == '9') {
return '0';
} else {
return ch + 1;
}
} else {
return ch;
}
}
int main()
{
string str;
cout << "请输入字符串,以#结束:" << endl;
getline(cin, str, '#');
// 加密字符串
for (size_t i = 0; i < str.size(); i++) {
str[i] = encrypt(str[i]);
}
// 获取保存路径
string filename;
cout << "请输入文件保存路径:" << endl;
getline(cin, filename);
// 保存文件
ofstream outfile(filename, ios::binary);
if (!outfile) {
cerr << "无法打开文件!" << endl;
return 1;
}
outfile.write((char*)&str[0], sizeof(char) * str.size());
outfile.close();
return 0;
}
```
输入字符串后,可以输入文件保存路径,程序将会加密字符串并保存成二进制文件。这里的加密函数是将字符的ASCII码加1,同时考虑了字母和数字的特殊情况。
阅读全文