【问题标题】:perror and std::cerr useperror 和 std::cerr 使用
【发布时间】:2013-03-12 03:03:33
【问题描述】:

谁能告诉我std::cerrperror的用法有什么区别

void perror ( const char * str );

我想知道在 C++ 应用程序中哪一个更可取,为什么它更可取。

【问题讨论】:

标签: c++


【解决方案1】:

http://www.cplusplus.com/reference/cstdio/perror/

perrorcerr 是不同的东西。 cerr - 是与stderr 连接的std::ostream 类的对象。并且perror 打印errnostderr 中的字符串。

【讨论】:

    【解决方案2】:

    您的问题基本上归结为 iostream 与 stdio。 here已经回答了类似的问题。

    如果你在 C++ 中工作,除非你想做一些非常具体的事情,否则 cerr 绝对比 perror 更可取。唯一真正的区别是 cerr 几乎与

    fprintf(stderr, const char*, arg1, ...);
    

    虽然 perror 还会根据 errno 加载并显示相应的错误消息。你也不能用 perror 显示变量所以你不能这样做

    perror("Something went wrong, i: %d", i);
    

    除非你预处理你的错误信息。

    【讨论】:

      猜你喜欢
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      • 2015-08-16
      • 2013-02-08
      • 2014-07-02
      • 2019-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多