C++一道关于流文件的习题

来源:百度知道 编辑:UC知道 时间:2024/05/26 03:31:00
下面是一个三角形类Triangle的定义:
class Triangle {
public:
Triangle(double a, double b, double c) {
x=a;
y=b;
z=c;
}
int saveToFile(ostream &outFile);
int loadFromFile(istream *inFile);
private:
Double x, y, z;
};
(1) 实现成员函数saveToFile,将对象自身保存到文件中。
(2) 实现成员函数loadFromFile,从文件中恢复对象。

谢谢哪位高手帮忙编一下,我有些不明白,不过看了代码应该能自己领悟,谢谢!

int Triangle::saveToFile(ostream &outFile)
{
outFile<<x<<'\t'<<y<<'\t'<<z;
}
int Triangle::loadFormFile(istream &inFile)
{
inFile>>x>>'\t'>>y>>'\t'>>z;
}
main()
{
Triangle tri;
ostream fs;
fs.open(...);
istream is;
is.open(...);
tri.saveToFile(fs);
tri.loadFromFile(is);
}

感觉你这里设计的有问题
如果输入流,或输出流都已经成为函数参数被传递进函数。那么证明你已经打开相应的输入\输出流文件了。要设计应该是传递的参数是空,在内部把操作做完就可以了
大概可以这样设计
void saveToFile()
{
ofstream fout ;
fout.open("num.txt",ios_base::out | ios_base::trunc);
……
for(i=0;i<100;i++)
fout << arr[i];
fout.close();
}
void loadFromFile()
{
ifstream fin;
fin.open("num.txt");
char ch[100];
for(i=0;i<100;i++)
fin >> ch[i];
fin.close();
}