【发布时间】:2025-12-02 19:35:01
【问题描述】:
如果有argv[1],我想将一些数据放入新的ofstream(argv[1]),即名称为argv[1]的文件。但如果没有这样的论点,我想改用cout。
我试过了
std::ostream& output = argc >= 1 ? std::fstream(argv[0]) : std::cout;
但由于构造函数被删除,它甚至无法编译。
【问题讨论】:
-
尝试不要将
fstream设为临时地址。 -
此外,为什么不直接使用输出重定向呢?我能想到的所有操作系统都支持它,你可以使用
cout免费获得它。 -
@zneak: 如果没有 arg ,我如何创建它而不是临时的?
-
我必须使用允许将文件名放入 args 的接口
-
您正在尝试获取对临时值的引用,这就是它不起作用的原因。您无法获得对临时值的引用。这就像尝试做
double& d = sin(1)。