关于c++自定义类中的输出函数怎么能输出到文件

#include<iostream.h>#include<fstream.h>classMatrix{private:introw,col;double*data;pub... #include<iostream.h>
#include<fstream.h>
class Matrix
{
private:
int row,col;
double *data;
public:
Matrix(){row=col=0;data=NULL;};
Matrix(int);
int getpoint(int,int);
void Disp();
};
Matrix::Matrix(int n)//初始化为单位阵
{
row=col=n;int GP;
data=new double[n*n];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
GP=getpoint(i,j);
if(i==j)
data[GP]=1;
else
data[GP]=0;
}
}
int Matrix::getpoint(int i,int j)//找到矩阵i行j列的位置
{
if(i>row||j>col||i<=0||j<=0)
{ cout<<"无法获得当前矩阵\n";
Disp();
cout<<i<<"行"<<j<<"列位置"<<endl;
return -1;
}
else
return (i-1)*col+j-1;
}
void Matrix::Disp()//显示矩阵
{
int GP;
if(row==0||col==0)
{
cout<<"\n此矩阵为空矩阵\n";
}
else{
for(int i=1;i<=row;i++)
for(int j=1;j<=col;j++)
{
GP=getpoint(i,j);
cout<<data[GP]<<" ";
if(j==col)
cout<<endl;
}
cout<<"\n";
}
}
void main()
{
Matrix A(4);
A.Disp();
ofstream ppt("disp.txt");
//想把A.Disp()中的内容也输出到disp.txt,该怎么写啊接下来
}
非常感谢两位啊,采用你们两位的做法得到了我要的结果。。。 本来我只是在Disp函数里增加了ofstream的一个对象,然后当cout在屏幕输出时,相应的对象让他在文件上输出,但问题是在主函数里输出文件的内容都在文件前面,调用disp函数输出都在文件后面,和屏幕输出的不一致,可能是形参的问题呢,呵呵。现在终于解决啦。。。
展开
 我来答
wanfustudio
推荐于2016-05-25 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:4158万
展开全部
加了一个函数:

#include<iostream.h>
#include<fstream.h>
class Matrix
{
private:
int row,col;
double *data;
public:
Matrix(){row=col=0;data=NULL;};
Matrix(int);
int getpoint(int,int);
void Disp();
void PrintToFile(ofstream &f);
};
Matrix::Matrix(int n)//初始化为单位阵
{
row=col=n;int GP;
data=new double[n*n];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
GP=getpoint(i,j);
if(i==j)
data[GP]=1;
else
data[GP]=0;
}
}
int Matrix::getpoint(int i,int j)//找到矩阵i行j列的位置
{
if(i>row||j>col||i<=0||j<=0)
{
cout<<"无法获得当前矩阵\n";
Disp();
cout<<i<<"行"<<j<<"列位置"<<endl;
return -1;
}
else
return (i-1)*col+j-1;
}
void Matrix::Disp()//显示矩阵
{
int GP;
if(row==0||col==0)
{
cout<<"\n此矩阵为空矩阵\n";
}
else{
for(int i=1;i<=row;i++)
for(int j=1;j<=col;j++)
{
GP=getpoint(i,j);
cout<<data[GP]<<" ";
if(j==col)
cout<<endl;
}
cout<<"\n";
}
}

void Matrix::PrintToFile(ofstream &f)
{
int GP;
if(row==0||col==0)
{
cout<<"\n此矩阵为空矩阵,不写进文件\n";
}
else{
for(int i=1;i<=row;i++)
for(int j=1;j<=col;j++)
{
GP=getpoint(i,j);
f<<data[GP]<<" ";
if(j==col)
f<<endl;
}
f<<"\n";
}
}
void main()
{
Matrix A(4);

A.Disp();

ofstream ppt("disp.txt",ios::out);
if(!ppt)
{
return;
}

A.PrintToFile(ppt);
}
断肆茶N
2009-05-23 · TA获得超过188个赞
知道小有建树答主
回答量:130
采纳率:0%
帮助的人:0
展开全部
void Save(ofstream& file);
void Matrix::Save(ofstream& file){
int GP;
if(row==0||col==0)
{
file<<"\n此矩阵为空矩阵\n";
}
else{
for(int i=1;i<=row;i++)
for(int j=1;j<=col;j++)
{
GP=getpoint(i,j);
file<<data[GP]<<" ";
if(j==col)
file<<endl;
}
file<<"\n";
}
}

int main()
{
...
//想把A.Disp()中的内容也输出到disp.txt
A.Save(ppt);
...
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式