相关疑难解决方法(0)

从std :: cout或std :: ofstream(文件)获取std :: ostream

如何根据某个程序条件将a绑定std::ostream到一个std::cout或一个std::ofstream对象?虽然这有多种原因无效,但我想实现在语义上等同于以下内容的东西:

std::ostream out = condition ? &std::cout : std::ofstream(filename);
Run Code Online (Sandbox Code Playgroud)

我见过一些不例外的示例,例如来自http://www2.roguewave.com/support/docs/sourcepro/edition9/html/stdlibug/34-2.html的示例:

int main(int argc, char *argv[])
{
  std::ostream* fp;                                           //1
  if (argc > 1)
     fp = new std::ofstream(argv[1]);                         //2
  else
     fp = &std::cout                                          //3

  *fp << "Hello world!" << std::endl;                         //4
  if (fp!=&std::cout) 
     delete fp;
}
Run Code Online (Sandbox Code Playgroud)

有谁知道一个更好的,异常安全的解决方案?

c++ iostream exception-handling

48
推荐指数
3
解决办法
5万
查看次数

C++,错误:"无操作符"=="匹配这些操作数",ostream/istream

我是一个新的编码,需要为某种数据库做一个程序.我看到一些关于youtube的教程,复制了他的代码,但是我得到了一个错误,我不知道如何解决它.

错误:没有运算符"=="匹配这些操作数; 参考if(out == cout)

这是代码:

void Employee::output(ostream& outs)
{
    if (outs == cout)
    {
        outs << "Name: " << name << endl;
        outs << "ID number: " << id_number << endl;
        outs << "Address: " << address << endl;
        outs << "Salary: " << salary << endl;
        outs << "Years worked at company: " << year_started << endl;
    }
    else {
        outs << name << endl;
        outs << id_number << endl;
        outs << address << endl;
        outs << salary …
Run Code Online (Sandbox Code Playgroud)

c++ iostream operator-overloading operators

1
推荐指数
1
解决办法
370
查看次数