【发布时间】:2021-09-08 15:41:13
【问题描述】:
我有这个需求。如果提供,则从文件读取或写入文件,否则回退给好朋友std::cin / std::cout,如:
// pseudo code for problem statement.
int main(int argc, char* argv[])
{
istream reader;
ostrea writer;
if (argc > 1)
{
// we have path to our file in argv[]
reader = ifstream(infile);
writer = ofstream(outfile);
}
else
{
reader = cin;
writer = cout;
}
// rest of code
}
本质上,即使我的想法很复杂,有没有办法实现类似的目标。 谢谢!
使用的环境:C++ 11、14、17。
编辑#1:
详细说明if条件,如果程序被调用为
$: driver "input_file.txt" "output_file.txt"
它应该从这些文件中做IO,相反,如果这样调用,
$: driver < "input_file.txt" > "output_file.txt"
它应该使用std::cin 和std::cout
// 编辑结束#1
我正在阅读参考资料here,我在想这是否有帮助?
【问题讨论】:
-
创建一个函数
read(),像这样重载它:read(ifstream&, ofstream&); read(istream&, ostream&);详细说明您已经提出的if条件。