创建matrix.txt,将上问结果保存到matrix.txt
时间: 2023-12-25 18:06:40 浏览: 29
好的,这里给出将结果保存到 `matrix.txt` 的代码示例:
```c++
#include <iostream>
#include <fstream>
using namespace std;
class Matrix {
private:
int m, n;
int **data;
public:
Matrix(int m, int n) {
this->m = m;
this->n = n;
data = new int*[m];
for (int i = 0; i < m; i++) {
data[i] = new int[n];
for (int j = 0; j < n; j++) {
data[i][j] = 0;
}
}
}
friend Matrix operator*(const Matrix& m1, const Matrix& m2) {
Matrix result(m1.m, m2.n);
for (int i = 0; i < m1.m; i++) {
for (int j = 0; j < m2.n; j++) {
for (int k = 0; k < m1.n; k++) {
result.data[i][j] += m1.data[i][k] * m2.data[k][j];
}
}
}
return result;
}
void setData(int i, int j, int value) {
data[i][j] = value;
}
void saveToFile(const char* filename) {
ofstream fout(filename);
if (fout.is_open()) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
fout << data[i][j] << " ";
}
fout << endl;
}
fout.close();
}
else {
cout << "Error: cannot open file." << endl;
}
}
void print() {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cout << data[i][j] << " ";
}
cout << endl;
}
}
};
int main() {
Matrix m1(2, 3);
m1.setData(0, 0, 1);
m1.setData(0, 1, 2);
m1.setData(0, 2, 3);
m1.setData(1, 0, 4);
m1.setData(1, 1, 5);
m1.setData(1, 2, 6);
cout << "Matrix 1:" << endl;
m1.print();
Matrix m2(3, 2);
m2.setData(0, 0, 7);
m2.setData(0, 1, 8);
m2.setData(1, 0, 9);
m2.setData(1, 1, 10);
m2.setData(2, 0, 11);
m2.setData(2, 1, 12);
cout << "Matrix 2:" << endl;
m2.print();
Matrix result = m1 * m2;
cout << "Matrix 1 * Matrix 2:" << endl;
result.print();
result.saveToFile("matrix.txt");
return 0;
}
```
在这个示例中,我们在 `Matrix` 类中新增了一个 `saveToFile` 函数,用于将矩阵的数据保存到文件中。在 `main` 函数中,我们通过调用 `result.saveToFile("matrix.txt")` 将结果保存到了 `matrix.txt` 文件中。