我必须写一个"登录"和#34;注销"将当前iostream从函数重定向到fstream并返回的函数。
更具体地说,我有:
void console (istream& in, ostream& out)
{
//take command from user through console
//default input/ output stream is in/out
}
void logon (ostream& out, string filename)
{
ofstream fileout;
fileout.open(filename);
//assign this fstream fileout to ostream& out
}
void logoff (ostream& out)
{
// take current ofstream fileout
fileout.close();
// return the stream back to out
}
程序应该像这样工作:
答案 0 :(得分:1)
您也可以使用std :: string作为中介:
void consoleIn (std::istream& in, std::string& strInput)
{
in >> strInput;
}
void logon (std::ostream& out, std::string filename, std::string const& MyText)
{
std::ofstream fileout;
fileout.open(filename);
fileout << MyText;
}
然后尝试使用std ::来指定标准对象。
答案 1 :(得分:0)
您可以使用字符串流作为中间人吗?
stringstream ss;
while ofstream has data
ofstream >> ss
ostream << ss
....
只是一个想法,不确定这将是多么实用