
关于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函数输出都在文件后面,和屏幕输出的不一致,可能是形参的问题呢,呵呵。现在终于解决啦。。。 展开
#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函数输出都在文件后面,和屏幕输出的不一致,可能是形参的问题呢,呵呵。现在终于解决啦。。。 展开
展开全部
加了一个函数:
#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);
}
#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);
}
展开全部
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);
...
}
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);
...
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询