#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int i;
cout<<"选择功能:\n1:write\n2.read\n";
cin>>i;
switch(i)
{
case 1:
{
char filename1[256];
cout<<"输入要写入的文件名"<<endl;
cin>>filename1;
int row,col;
cout<<"输入矩阵的行,列"<<endl;
cin>>row>>col;
float *p=new float[col*row];
if(p==NULL)
{
cout<<"allocalte error"<<endl;
return -1;
}
ofstream outfile(filename1);
if(!outfile)
{
cout<<"can not open the outfile"<<endl;
return -1;
}
outfile<<row<<" "<<col<<endl;
for(int i=0;i<row;i++)
{
char buff[300];
for(int j=0;j<col;j++)
{
cin>>p[i*col+j];
//sprintf(buff,"%f",p[i*col+j]);
outfile<<setiosflags(ios::fixed)<<setprecision(6)<<p[i*col+j]<<" ";
}
outfile<<endl;
//outfile<<buff<<endl;
}
outfile.close();
delete []p;
break;
}
case 2:
{
char filename2[256];
cout<<"输入要读入的文件名"<<endl;
cin>>filename2;
ifstream infile(filename2);
if(!infile)
{
cout<<"cannot open file2"<<endl;
return -1;
}
float ch[9];
int count,row,col;
float sum;
//infile.unsetf(ios::skipws);
infile>>row>>col;
count=row*col;
for(int i=0;i<count;i++)
{
infile>>ch[i];
//count++;
cout<<ch[i]<<" ";
sum+=ch[i];
}
cout<<endl;
cout<<sum/count<<endl;
infile.close();
break;
}
default:
cout<<"wrong input"<<endl;
break;
}
return 0;
}
注意:infile(ifstream) outfile(ofstream)的使用和cin,cout类似,支持各种基本类型。