我需要我的程序,请执行下列操作之一:如何写入/读取到未知的输入/输出在C++流
- 从标准输入读取和写入标准输出从给定的文件中读取
- 和写入另一个给定文件
工作方式仅在运行时确定。
这是我试过
void runProgram(std::istream programIStream, std::ostream programOStream)
{
int x;
programIStream >> x; // Reading from program input stream
programOStream << "Writing to program output stream" << std::endl;
}
int main(int argc, char* argv[])
{
if(argc == 3)
{
std::ifstream ifs;
ifs.open(argv[1], std::ios::in);
std::ofstream ofs;
ofs.open(argv[2], std::ios::out);
runProgram(ifs, ofs);
}
else
{
runProgram(std::cin, std::cout);
}
return 0;
}
我认为继承是会照顾的,但是这是行不通的。
什么是正确的方法来做我所需要的?
你需要按引用传递:'无效runProgram(的std :: istream的&programIStream,性病:: ostream的和programOStream)' – NathanOliver
搜索:对象切片。 – Rakete1111
@NathanOliver,这解决了它。谢谢 – Jona