【问题描述】 从in.txt文件中读取一行电报文字,可以任选两种输出:原文输出或密码输出至out。。密码输出要求将相应的字母变成其下一个字母,如'a'变成'b',……,'Z'变成'A',其他字符不变。用#define命令控制是否需要译成密码。#define KEY 1,输出密码,#define KEY 0,则不译成密码,原文输出。 【输入形式】 源文件名和目标文件名分别为in.txt和out.txt,程序将从当前目录下读取in.txt文件。 【输出形式】 将in.txt文件中内容按要求输出到otu.txt文件中。 【样例输入】 Alcatel provides 18 end-to-end solutions. 【样例输出】 Bmdbufm qspwjeft 18 foe-up-foe tpmvujpot.
时间: 2024-03-12 09:44:14 浏览: 147
以下是实现该功能的 C++ 代码:
```cpp
#include <iostream>
#include <fstream>
#include <cstring>
#define KEY 1 // 定义是否加密
using namespace std;
int main() {
ifstream fin("in.txt");
ofstream fout("out.txt");
string str;
getline(fin, str); // 读取一行文本
if (KEY) { // 加密
for (int i = 0; i < str.length(); i++) {
if (isalpha(str[i])) { // 判断是否为字母
if (str[i] == 'Z' || str[i] == 'z') { // 处理边界情况
str[i] = str[i] - 25;
} else {
str[i] = str[i] + 1;
}
}
}
}
fout << str << endl; // 输出到文件
fin.close();
fout.close();
return 0;
}
```
注意,为了方便起见,上述代码直接将输出结果写入到文件中。如果需要在控制台输出,可以将 `fout` 改为 `cout`。
阅读全文