c++ - 如何将通用文件流作为参数传递?

标签 c++ stream fstream

我有这个功能:

void check_open (ifstream& file)
{
    if (not file.is_open())
    {
        cout << "Error." << endl;
        exit(1);
    }
}

但我只能传递 ifstream 参数,我怎样才能让它也接受 ofstream 参数?

最佳答案

只要流有 is_open() 方法,下面的函数就可以正常工作(fstreamifstream ofstream,以及它们具有不同字符类型的变体)。

template<typename stream_type>
void check_open (const stream_type& file)
{
    if (not file.is_open())
    {
        cout << "Error." << endl;
        exit(1);
    }
}

关于c++ - 如何将通用文件流作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20172308/

相关文章:

c++ - C++ 中虚拟关键字的使用

c++ - 什么时候评估 enable_if_t 表达式?

c++ - 如何检查指令是否为 LLVM IR 中的 PHI 指令

node.js - 将 Node.js 对象流传输到多个目的地会产生奇怪的结果 - 为什么?

ios - AVPlayer seekTo 不准确

c++ - 使用 ofstream 将数据写入其文件后更新 ifstream 对象

C++、JsonCpp、libcurl 和 UTF-8 问题

.net - WCF 流读取行为

c++ - fstream 读取 MSR

c++ - 在 ofstream 写入期间检测到空间不足,stream.fail() 无法工作