5

谁能告诉我std::cerrperror

void perror ( const char * str );

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

4

2 回答 2

3

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

perror并且cerr是不同的东西。cerr- 是std::ostream与 连接的类的对象stderr。并perror打印errno和你的字符串在stderr.

于 2013-03-22T09:56:34.020 回答
2

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

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

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

而 perror 还将根据 errno 加载并显示适当的错误消息。你也不能用 perror 显示变量,所以你不能这样做

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

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

于 2013-03-22T10:00:34.447 回答