c++编写一个程序,要求用户输入两个文件名。第一个文件用于输入,第二个文件用于输出。并假设第一个文件中包含的句子都以“.”结束。程序从第一个文件中读取字符,把每个句子除首字母的所有字母都小写,然后写到第二个文件中
时间: 2024-12-20 08:23:44 浏览: 15
在C++中,你可以使用`fstream`库来实现这个文件操作的功能。下面是一个简单的示例程序:
```cpp
#include <iostream>
#include <fstream>
#include <cctype> // 包含tolower函数
// 函数用来处理一行文本,将非首字母转换为小写
void process_line(const std::string &line) {
if (!line.empty()) {
char first_char = line[0];
line.erase(0, 1); // 移除首字母
for (char &c : line) {
c = std::tolower(c);
}
line.insert(0, first_char); // 将首字母放回原位置
}
}
int main() {
std::string input_file_name, output_file_name;
std::cout << "请输入输入文件名: ";
std::cin >> input_file_name;
std::cout << "请输入输出文件名: ";
std::cin >> output_file_name;
std::ifstream inputFile(input_file_name);
std::ofstream outputFile(output_file_name);
if (!inputFile || !outputFile) {
std::cerr << "无法打开文件!" << std::endl;
return 1;
}
std::string line;
while (std::getline(inputFile, line)) {
process_line(line);
outputFile << line << "."; // 保留句点
}
inputFile.close();
outputFile.close();
std::cout << "文件处理完成!\n";
return 0;
}
```
在这个程序中,我们首先获取用户的输入文件名和输出文件名,然后分别打开这两个文件。对于输入文件中的每一行,我们调用`process_line`函数将其内容处理成小写,除了首字母保持不变。处理后的字符串会写入输出文件,并保留每句话结尾的句点。
如果遇到文件打开失败或其他错误,程序会捕获异常并输出错误信息。
阅读全文