用c++实现:输入一串有字母和数字混合的字符串,编程序将字符串中的字母和数字分开,分别存入两个不同的文件。
时间: 2024-02-27 12:59:13 浏览: 21
好的,这是一个比较基础的文件操作题目,可以使用 C++ 的标准库来实现。具体步骤如下:
1. 定义两个文件流对象,并分别打开两个文件:
```cpp
#include <fstream>
#include <iostream>
using namespace std;
int main() {
ifstream fin("input.txt"); // 打开输入文件
ofstream fout_alpha("alpha.txt"); // 打开字母输出文件
ofstream fout_digit("digit.txt"); // 打开数字输出文件
// 判断文件是否成功打开
if (!fin.is_open()) {
cerr << "Error opening input file.\n";
return -1;
}
if (!fout_alpha.is_open()) {
cerr << "Error opening output file for letters.\n";
return -1;
}
if (!fout_digit.is_open()) {
cerr << "Error opening output file for digits.\n";
return -1;
}
// 文件操作代码
// 关闭文件流
fin.close();
fout_alpha.close();
fout_digit.close();
return 0;
}
```
2. 读取输入文件中的每一个字符,判断是字母还是数字,并将其分别输出到不同的文件中:
```cpp
char ch;
while (fin.get(ch)) {
if (isalpha(ch)) {
fout_alpha.put(ch); // 如果是字母,输出到字母文件
} else if (isdigit(ch)) {
fout_digit.put(ch); // 如果是数字,输出到数字文件
}
}
```
3. 最后记得关闭文件流。
完整代码如下:
```cpp
#include <fstream>
#include <iostream>
using namespace std;
int main() {
ifstream fin("input.txt"); // 打开输入文件
ofstream fout_alpha("alpha.txt"); // 打开字母输出文件
ofstream fout_digit("digit.txt"); // 打开数字输出文件
// 判断文件是否成功打开
if (!fin.is_open()) {
cerr << "Error opening input file.\n";
return -1;
}
if (!fout_alpha.is_open()) {
cerr << "Error opening output file for letters.\n";
return -1;
}
if (!fout_digit.is_open()) {
cerr << "Error opening output file for digits.\n";
return -1;
}
char ch;
while (fin.get(ch)) {
if (isalpha(ch)) {
fout_alpha.put(ch); // 如果是字母,输出到字母文件
} else if (isdigit(ch)) {
fout_digit.put(ch); // 如果是数字,输出到数字文件
}
}
fin.close(); // 关闭文件流
fout_alpha.close();
fout_digit.close();
return 0;
}
```