编写一个程序,采用“>>”和“<<”运算符重载的方法,将文本文件f1.dat中的数据读到一个数组类Array的对象ob(4╳5大小)中,并显示出来,然后将ob写到f2.dat文件中; 假设f1.dat文件中的数据为: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
时间: 2024-03-09 14:49:29 浏览: 86
运算符重载 << >>流插入符 流提取符
好的,我明白了。这是一个简单的文件读写和运算符重载的问题。以下是实现该程序的C++代码:
```c++
#include <iostream>
#include <fstream>
using namespace std;
const int ROWS = 4;
const int COLS = 5;
class Array {
private:
int data[ROWS][COLS];
public:
friend ifstream& operator>>(ifstream& fin, Array& ob);
friend ofstream& operator<<(ofstream& fout, Array& ob);
void show() {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
cout << data[i][j] << "\t";
}
cout << endl;
}
}
};
ifstream& operator>>(ifstream& fin, Array& ob) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
fin >> ob.data[i][j];
}
}
return fin;
}
ofstream& operator<<(ofstream& fout, Array& ob) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
fout << ob.data[i][j] << "\t";
}
fout << endl;
}
return fout;
}
int main() {
Array ob;
ifstream fin("f1.dat");
fin >> ob;
fin.close();
ob.show();
ofstream fout("f2.dat");
fout << ob;
fout.close();
return 0;
}
```
在这个程序中,我们定义了一个Array类,其中包含一个二维数组data,用于存储读取的数据。我们重载了"<<"和">>"运算符,以便将数据从文件读入数组中,并将数组写回到文件中。在main函数中,我们首先打开f1.dat文件,将其读入到Array对象ob中,然后关闭文件并显示ob中的数据。接下来,我们打开f2.dat文件,并将ob中的数据写回到文件中,然后关闭文件。
运行程序后,您将看到以下输出:
```
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
```
该程序成功地将f1.dat中的数据读入Array类的对象ob中,并将其写回到f2.dat文件中。
阅读全文