c++ - 从 cin 或文件中读取

标签 c++ istream

当我尝试编译代码时

istream in;
if (argc==1)
        in=cin;
else
{
        ifstream ifn(argv[1]);
        in=ifn;
}

gcc 失败,提示 operator= 是私有(private)的。有什么方法可以根据条件将 istream 设置为不同的值吗?

最佳答案

您可以为 in 使用指针,例如:

istream *in;
ifstream ifn;

if (argc==1) {
     in=&cin;
} else {
     ifn.open(argv[1]);
     in=&ifn;
}

关于c++ - 从 cin 或文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2407077/

相关文章:

c++ - 如何使用 MPI 程序从命令行读取参数?

c++ - istream std::cin 如何修改自定义 istream 缓冲区?

c++ - C++-标准输入循环

c++ - 找到 cin 和 ifstream 的流结尾?

c++ - 放置新和删除

C++ std::vector<bool> 使用 drmemory 给出未初始化的读取错误

c++ - 我可以在对 std::visit 的调用中更改 std::variant 中的保留类型吗

c++ - throw 可移动物体

c++ - 知道 istream 是否以 C++ 中的字符串开头的惯用方法?

C++ 提取 istream 的内容并复制到另一个